Skip to content

Releases: hampsterx/async-kinesis

2.5.6

06 May 22:36
7ce2bd8

Choose a tag to compare

What's Changed

  • fix(consumer): handle missing NextShardIterator on exhausted shards (#26) by @hampsterx in #97
  • feat: add kinesis dogfood soak tool by @hampsterx in #98

Full Changelog: 2.5.5...2.5.6

2.5.5

02 May 03:13
170d614

Choose a tag to compare

What's Changed

  • fix(dynamodb): drop bogus Session.close() call (#94) by @hampsterx in #95
  • fix(checkpointer): close #81 papercuts in BaseHeartbeatCheckPointer by @hampsterx in #92
  • fix(checkpointer): serialise concurrent manual_checkpoint() flushes (#80) by @hampsterx in #96

Full Changelog: 2.5.4...2.5.5

2.5.4

23 Apr 01:23
47b2307

Choose a tag to compare

What's Changed

  • fix(consumer): stop rebuilding client on transient get_records errors (#73) by @hampsterx in #93

Full Changelog: 2.5.3...2.5.4

2.5.3

21 Apr 21:02
35531c3

Choose a tag to compare

What's Changed

Fixes

  • fix(consumer): skip get_records when client is mid-reconnect (#73) by @hampsterx in #91
    • Eliminates log flood of Unknown error 'NoneType' object has no attribute 'get_records' during connection-error spikes on multi-shard consumers.
    • Root cause: pre-existing race exposed by 2.5.2. One shard's ConnectionClosedError triggers _get_reconn_helper(), which sets self.client = None for 5+ seconds while rebuilding. Concurrent shards dispatched in the meantime hit the None client, raise AttributeError, and mislabel as error_type="unknown".
    • Fix: snapshot self.client inside the throttler block (past the only await point) and return None quietly if the client is mid-rebuild. fetch() already handles a None result gracefully.

Backwards compatibility

No API changes. Minor metrics shift: events previously landing in error_type="unknown" via this specific race no longer emit at all (they weren't real errors, just shards racing a reconnect). Total consumer_errors_total rate drops slightly as a result.

Full Changelog: 2.5.2...2.5.3

2.5.2

21 Apr 01:31
b693029

Choose a tag to compare

What's Changed

Fixes

  • fix(consumer): keep iterator_age visible under error spikes (#73) by @hampsterx in #90
    • CONSUMER_ITERATOR_AGE now re-emits cached value from the error branch, so the gauge stays observable when every shard is hitting transient errors.
    • ConnectionClosedError, EndpointConnectionError, ReadTimeoutError now classify as connection/timeout instead of falling through to unknown.

Docs

Backwards compatibility

No API changes. Two observability-level shifts to be aware of:

  • consumer_iterator_age_milliseconds gauge now also emits from the error branch (stale by definition during outages, pair with consumer_errors_total rate).
  • Errors previously labeled error_type="unknown" that match the three botocore subclasses above now land in connection/timeout. Alerts should widen to error_type=~"connection|timeout|unknown".

Full Changelog: 2.5.1...2.5.2

2.5.1

19 Apr 19:57
dfc001c

Choose a tag to compare

What's Changed

  • fix(checkpointer): emit checkpoint metrics on backend write, not consumer call by @hampsterx in #75
  • fix(checkpointer): retain buffered entries when manual_checkpoint() raises by @hampsterx in #77
  • fix(dynamodb): propagate endpoint_url to all resource/client calls by @hampsterx in #78
  • fix(checkpointer): best-effort manual_checkpoint() with compound raise by @hampsterx in #84
  • chore(ci/test): bump Floci to 1.5.4, retire kinesalite, enable ARN test by @hampsterx in #85
  • refactor(checkpointer): lift checkpoint()/manual_checkpoint() to base class (#82) by @hampsterx in #86
  • docs: split contributor docs into AGENTS.md + CONTRIBUTING.md by @hampsterx in #87

Full Changelog: 2.5.0...2.5.1

2.5.0

16 Apr 21:50
afeae00

Choose a tag to compare

What's Changed

  • ci: replace LocalStack with Floci for CI Kinesis emulation by @hampsterx in #71
  • ci: update publish workflow to use Floci instead of LocalStack by @hampsterx in #72
  • feat(consumer): wire metrics_collector and emit consumer/stream metrics by @hampsterx in #74

Full Changelog: 2.4.1...2.5.0

2.4.0

17 Mar 03:18
1ffd327

Choose a tag to compare

What's Changed

  • Fix checkpoint data loss: defer execution, fix queue timeout, add interval batching by @hampsterx in #66

Full Changelog: 2.3.1...2.4.0

2.3.1

15 Mar 07:21
66451cc

Choose a tag to compare

What's Changed

Full Changelog: 2.3.0...2.3.1

2.3.0

12 Mar 20:59
8ff62d8

Choose a tag to compare

What's Changed

  • tweaks/Fix silent data loss when close() races with background flush by @hampsterx in #63
  • Fix/consumer idle timeout and reconnect cleanup by @hampsterx in #64

Full Changelog: 2.2.5...2.3.0