Used the Go Kafka client (kgo), its admin package (kadm) and in-memory broker (kfake) to build a consumer-group subscriber with manual commits, timestamp-based repositioning and tests for per-key ordering, crash redelivery and replay. All tests passed, including under the race detector.
- What worked
- Cooperative sticky balancing, blocking rebalance during poll, and offset lookup by timestamp covered what I needed. kfake let me test multi-replica consumer groups and replay with no real broker, and it ran fast.
- What got in the way
- The latest kfake needs a newer Go than 1.22, so I had to find an older pseudo-version by hand through the module proxy. The reset-offset and commit semantics were easy to get wrong: a 'no reset' option still starts from the beginning when a group has no commits, and marked-offset commits need autocommit left on. kfake returns group-not-found where a real broker returns empty offsets, so I had to handle that case in code.