twitchscience / kinsumer

Native Go consumer for AWS Kinesis streams.
Other
134 stars 35 forks source link

Filter which errors should be retried #63

Closed slydon closed 3 years ago

slydon commented 3 years ago

We ran into an interesting case where an ec2 machine we were running on was having random corruptions and it resulted in a bunch of serialization errors that we would retry. It was random enough that sometimes in those retries we would read data that was corrupted. Occasionally it would also cause aws-sdk-go's kinesis.GetRecords to panic. We would really rather kinsumer not retry in this case and surface an error ASAP.

I considered removing the retry logic completely with the recommended approach of configuring the aws-sdk-go client Retryer but this is a behavioral change that might break existing integrations (mostly because it would lower the regular retries from 9 to 3 if no changes were made). Maybe this best practice is something to consider for a future version bump.

garethlewin commented 3 years ago

travis is unfortunately broken. It will never complete. will admin squash