Releases: Protocol-Lattice/GoEventBus
Releases · Protocol-Lattice/GoEventBus
v0.3.0: feat: add batch handlers for bulk event dispatch (#16) (#16)
Introduces BatchHandlerFunc and RegisterBatch, allowing events for a projection to be collected across a Publish cycle and delivered as a slice in configurable chunks. Supports fan-out, DLQ routing, panic recovery, async dispatch, and per-event lifecycle hooks. Updates README with full batch handler documentation. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.2.9
v0.2.8: feat: add dead letter queue with panic recovery (#14)
Failed and panicking handlers are routed to an opt-in DeadLetterQueue (store.DLQ = GoEventBus.NewDeadLetterQueue()) instead of being silently counted in errorCount. Panics are wrapped as errors with errors.Is/As support and do not kill worker goroutines or the calling goroutine. New API: DeadLetter struct, DeadLetterQueue with Len/Entries/Drain/Replay. Replay re-subscribes all entries, increments Attempts, and keeps entries that fail to re-enqueue. Recovery moved from worker() into execute() so sync-mode panics are also caught. README updated with full DLQ section. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
v0.2.7
v0.2.6: fix: patch 5 security vulnerabilities found in audit (#12)
- Fail-fast nil dispatcher and zero buffer size in NewEventStore - Recover panicking handlers in async workers so wg.Done() always fires and the worker pool is never silently exhausted - Remove __ctx magic key from execute() and Transaction.Commit() to prevent context injection via Args - Lock txMu in Rollback() to prevent concurrent Subscribe from losing events when head is reset - Add regression tests for panic recovery and invalid constructor args Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>