All notable changes to the Streamkit project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Client:
NewClientWithRetryPolicy()now correctly uses the provided retry policy instead of ignoring it - Client: Added ±25% jitter to exponential backoff to prevent thundering herd on mass reconnects
- Client: Improved
IsRetryable()to exclude permanent errors (auth failures, not found, invalid arguments) - Client: Enhanced offset resume in resilience enumerator:
ConsumeSpacenow increments timestamp by 1ns to avoid duplicate entriesConsumenow updates offset map with last seen sequence per space/segment pair- Added debug logging for offset updates
- Production documentation: docs/production.md, hardened operational contracts in docs/limitations.md
Documented production behavior (see docs/limitations.md):
-
Lock map growth — Per-segment produce locks accumulate without automatic eviction.
- Impact: Not an issue for typical workloads (<10,000 active segments); high-churn scenarios (millions of unique segment keys) may see gradual memory growth.
- Mitigation: Monitor segment cardinality; recycle long-lived client processes if needed. LRU eviction is on the roadmap.
-
Consumption deduplication — Delivery is at-least-once; resilience enumerators resume from last consumed position when possible.
- Impact: Rare duplicates under concurrent producers or clock skew.
- Mitigation: Dedupe on
Entry.Sequenceat the application layer for exactly-once business semantics.
-
Subscription lifecycle — Retryable failures stay in the reconnect loop; permanent errors stop the subscription and remove it from the client registry.
- Impact: Applications must resubscribe after permanent errors.
- Contract: Reconnect delivers
latest snapshot → live updates. Durable replay/cursors are not part of the subscription API.
- Lock map cleanup/LRU eviction for high-churn segment scenarios
- Subscription failure callback:
OnSubscriptionFailed(id string, err error) - Enhanced observability: Prometheus metrics for client operations
- Batch API for high-throughput produces
- Expanded consume reconnect guidance and benchmarks
See GitHub Releases for tagged versions published to the Go module proxy.