Global Feed Post Login
Replying to Avatar Katie

One of the things I really enjoy about rabbit is the fan out pattern that it supports. One job can publish events that N number of other jobs can subscribe to. These consumers can be entirely decoupled, with multiple workers - each consumer can get the same events (redis streams support something similar, but they don’t support ack/nack and handling dropped messages isn’t as graceful as it is with rabbit) and a consumer can subscribe to more than one queue at the same time. It also supports routing keys that can make distributing messages even more configurable, as well as dead letter queues that can be used to route errored or timed out events to other queues that can have their own set of consumers. Instead of having to spin up resources in terraform for new queues/consumers, each job can self register with the rabbit cluster programmatically and configure itself with its own specific filters. It can be consumed from both in blocking and non blocking ways, and supports auto nacking with heartbeats to ensure messages don’t get missed.

Avatar
Katie 2y ago

You could accomplish parts of this with redis pubsub and other parts with streams, but rabbit combined the best of both of those thing with even more functionality.

Reply to this note

Please Login to reply.

Discussion

d0
d00d9c2b... 2y ago

Very cool. Think I'll soon it up in my homelab for some quick testing

Thread collapsed