What:
Intermediary message broker buffers (RabbitMQ, AWS SQS) that store asynchronous data packets passing between producers and consumer worker pools.
Primary purpose:
Decoupling transaction boundaries, buffering traffic spikes (throttling load), and isolating microservice failures.
Usually used for:
Background email dispatchers, asynchronous media transcoding networks, and transactional event streams.
How should I think about this inside system architectures?
📭 Decoupled Buffers
Producers publish messages without knowing who consumes them. Consumers pull tasks at their own processing pace, protecting database writes.
⏱️ Visibility Timeout
When a consumer pulls a message, the broker hides it from other consumers for a set period. If no ACK is received before timeout, the broker restores visibility.
💀 Dead-Letter Queue (DLQ)
If a message fails consumer processing N times, move it to a DLQ to prevent 'poison pills' from blocking the active queue.