v0.2.0 (2026-04-05)

Enhancements

  • Dead-letter queue — opt-in poison-message handling via the new dead_letter_threshold start option (default infinity, i.e. disabled). When set to a positive integer, messages that crash the consumer that many times are moved to a dead-letter queue (DLQ) stored in FoundationDB instead of being retried indefinitely. For call messages the blocked caller raises {dead_letter, N}. The optional handle_dead_letter/2 callback is invoked when a message is dead-lettered.

  • dgen_server:outbox_cast/1,2 — returns a Cast = fun((Tx, Message) -> ok) closure for enqueuing a cast message atomically within the caller's own FDB transaction. Call it before opening the transaction as a preparatory step; the closure captures the queue directory and identifier internally. Intended for callers already operating directly with a backend transaction who need to compose the enqueue with other writes atomically.

v0.1.0 (2026-02-22)

Initial release.