Transport-agnostic
Write your consumers and publishers once. Swap between in-memory, Amazon SNS/SQS, Azure Service Bus, RabbitMQ, or PostgreSQL without changing application code.
Flexible middleware pipeline
Compose retry, dead-letter, outbox, and custom middleware around every consumer. Mix and match built-in behaviours or plug in your own — each consumer's pipeline is fully independent.
Sagas and scheduling
Model stateful workflows with the saga abstraction. Schedule messages with TickerQ or Amazon EventBridge — all through a single unified API.