Rabbit MQ
mqUsing
For the sake of easier maintenance — plus the low risk of losing messages and the small number of rollback chains in the project — we're leaning toward Rabbit rather than Kafka.
Trying
RabbitMQ is a message broker that lets services talk asynchronously: one service publishes messages, another one (or several) consumes them. The classic scenarios — microservices, background jobs, integrations, "decoupling" systems in time and load.
Key entities:
- Exchange — the entry point for messages (routing).
- Queue — a message buffer for consumers.
- Binding — the rule for "which messages from an exchange land in which queue".
- Routing key — the string an exchange uses to pick the queue(s).
Exchange types (the most common memory cheat sheet):
- direct — exact routing key match
- topic — patterns (a.*.c, a.#)
- fanout — to all queues
- headers — by headers
Rabbit is really easy to deploy and configure. Connecting to it and working with it is just as simple — the main thing is to understand the point of Exchanges and what they are.