Apache Kafka is designed as a distributed streaming platform that handles high-throughput, fault-tolerant, and scalable real-time data feeds.
Click to reveal answer
intermediate
How does RabbitMQ handle message delivery guarantees?
RabbitMQ supports message acknowledgments and durable queues to ensure messages are delivered at least once, with options for exactly-once processing using additional configurations.
Click to reveal answer
beginner
What is a key advantage of Amazon SQS compared to self-managed brokers?
Amazon SQS is a fully managed service that automatically scales, requires no server management, and integrates easily with other AWS services.
Click to reveal answer
intermediate
Which system is best suited for event streaming and log aggregation?
Kafka is best suited for event streaming and log aggregation due to its high throughput, partitioning, and retention capabilities.
Click to reveal answer
intermediate
What is a main difference in message ordering between RabbitMQ and SQS?
RabbitMQ preserves message order within queues, while SQS standard queues do not guarantee order; however, SQS FIFO queues provide ordering with limited throughput.
Click to reveal answer
Which messaging system is designed as a distributed commit log?
AApache Kafka
BRabbitMQ
CAmazon SQS
DRedis Pub/Sub
✗ Incorrect
Kafka is designed as a distributed commit log for streaming data.
Which service is fully managed and requires no server maintenance?
AActiveMQ
BApache Kafka
CRabbitMQ
DAmazon SQS
✗ Incorrect
Amazon SQS is a fully managed message queue service by AWS.
Which system supports message acknowledgments to ensure delivery?
AKafka
BSQS Standard Queue
CRabbitMQ
DNone
✗ Incorrect
RabbitMQ supports message acknowledgments for reliable delivery.
Which system provides FIFO queues with limited throughput?
ASQS FIFO Queue
BKafka
CRabbitMQ
DRedis Streams
✗ Incorrect
SQS FIFO queues guarantee order but have throughput limits.
Which messaging system is best for high-throughput event streaming?
ARabbitMQ
BKafka
CSQS
DZeroMQ
✗ Incorrect
Kafka is optimized for high-throughput event streaming.
Explain the main differences between Kafka, RabbitMQ, and SQS in terms of architecture and use cases.
Think about how each system handles messages and scales.
You got /4 concepts.
Describe how message ordering and delivery guarantees differ among Kafka, RabbitMQ, and SQS.
Focus on ordering and reliability features.
You got /5 concepts.
Practice
(1/5)
1. Which messaging system is best suited for handling high-speed, large-scale streaming with multiple independent consumers?
easy
A. ActiveMQ
B. RabbitMQ
C. Kafka
D. SQS
Solution
Step 1: Understand Kafka's design for streaming
Kafka is designed for high-throughput, distributed streaming where multiple consumers can read independently from the same stream.
Step 2: Compare with RabbitMQ and SQS
RabbitMQ focuses on complex routing and guaranteed delivery with message removal, while SQS is a simple managed queue service without streaming capabilities.
Final Answer:
Kafka -> Option C
Quick Check:
High-speed streaming = Kafka [OK]
Hint: High-speed streaming with multiple readers? Think Kafka [OK]
Common Mistakes:
Confusing RabbitMQ's routing with Kafka's streaming
Assuming SQS supports multiple independent consumers reading the same message
Choosing a generic queue like ActiveMQ without streaming focus
2. Which of the following correctly describes a key feature of RabbitMQ?
easy
A. It supports only one consumer per queue
B. It stores messages indefinitely for replay
C. It is a fully managed cloud service
D. It removes messages after they are consumed
Solution
Step 1: Recall RabbitMQ message handling
RabbitMQ removes messages from the queue once they are consumed to ensure guaranteed delivery and avoid duplicate processing.
Step 2: Eliminate incorrect options
Kafka stores messages for replay, SQS is managed cloud service, and RabbitMQ supports multiple consumers with routing.
Final Answer:
It removes messages after they are consumed -> Option D
Quick Check:
RabbitMQ message removal = It removes messages after they are consumed [OK]
Hint: RabbitMQ deletes messages after consumption [OK]
Common Mistakes:
Thinking RabbitMQ stores messages indefinitely like Kafka
Confusing SQS managed service with RabbitMQ
Assuming RabbitMQ supports only one consumer
3. Given a system requiring simple, reliable message queuing without managing servers, which service would output the most scalable solution?
medium
A. RabbitMQ on self-hosted servers
B. AWS SQS managed queue
C. Kafka cluster managed by user
D. Local in-memory queue
Solution
Step 1: Identify managed services for scalability
AWS SQS is a fully managed queue service that scales automatically without server management.
Step 2: Compare with other options
Kafka and RabbitMQ require managing clusters or servers, while local queues lack scalability and reliability.
Final Answer:
AWS SQS managed queue -> Option B
Quick Check:
Simple, scalable, no server management = SQS [OK]
Hint: Managed, scalable queue without servers? Choose SQS [OK]
Common Mistakes:
Choosing Kafka or RabbitMQ without considering management overhead
Assuming local queues scale well
Confusing managed service with self-hosted
4. A developer tries to use RabbitMQ for a use case requiring message replay by multiple consumers independently. What is the main issue with this approach?
medium
A. RabbitMQ removes messages after consumption, so replay is not possible
B. RabbitMQ does not support multiple consumers
C. RabbitMQ cannot guarantee message delivery
D. RabbitMQ is not scalable for multiple consumers
Solution
Step 1: Understand RabbitMQ message lifecycle
RabbitMQ deletes messages once consumed, preventing replay by multiple consumers independently.
Step 2: Validate other options
RabbitMQ supports multiple consumers and guarantees delivery; scalability depends on setup but is not the main issue here.
Final Answer:
RabbitMQ removes messages after consumption, so replay is not possible -> Option A
Hint: RabbitMQ deletes messages; no replay for multiple consumers [OK]
Common Mistakes:
Assuming RabbitMQ supports message replay like Kafka
Thinking RabbitMQ lacks multiple consumer support
Confusing delivery guarantees with replay capability
5. You need to design a system that processes millions of events per second with multiple independent consumers, requires message retention for replay, and must handle complex routing. Which combination of messaging systems is the best architectural choice?
hard
A. Kafka for streaming and replay, RabbitMQ for routing
B. SQS for streaming, RabbitMQ for routing
C. RabbitMQ for streaming and replay, Kafka for routing
D. SQS for routing, Kafka for message retention
Solution
Step 1: Match requirements to system strengths
Kafka excels at high-throughput streaming with message retention and replay for multiple consumers.
Step 2: Address complex routing needs
RabbitMQ provides advanced routing capabilities that Kafka lacks.
Step 3: Combine systems for best fit
Use Kafka for event streaming and replay, RabbitMQ for routing messages to appropriate consumers.
Final Answer:
Kafka for streaming and replay, RabbitMQ for routing -> Option A