Design a Distributed Queue like RabbitMQ — System Design Interview Practice
Design a message queue system for reliable asynchronous communication between distributed services. Work through the requirements, architecture trade-offs, and an interactive design review.
Requirements and concepts to consider
- Publish and consume messagesRequirement
- Support multiple queues and topicsRequirement
- Message persistence and durabilityRequirement
- Dead letter queue for failed messagesRequirement
- Message ordering guaranteesRequirement
- Support different delivery patterns (pub/sub, point-to-point)Requirement
- Handle millions of messages per secondRequirement
- Message acknowledgment and retry logicRequirement
- messagingConcept to explore
- queuesConcept to explore
- distributed systemsConcept to explore
- asyncConcept to explore
- pub subConcept to explore