Message-Bus Architectural Pattern Quiz

Q1. 1. Service A sends a message that exactly one instance of Service B should process, while Service C emits an event that multiple other services should react to. Which messaging pattern is appropriate for each scenario?




Q2. 2. A payment service uses an *at-least-once* delivery message bus. Occasionally a payment message is processed twice, causing double charges. What is the best way to prevent double-processing in this scenario?




Q3. 3. An analytics service processes user events from a message bus with multiple partitions. Events from the same user sometimes process out of order when consumed in parallel. How can they ensure order for events belonging to the same user?




Q4. 4. A distributed application uses an event bus, and developers struggle to trace a single request’s events as they propagate through multiple services. What practice would best improve observability?




Q5. 5. One message in a queue keeps failing to process and is delaying subsequent messages. What mechanism allows the system to sideline this “poison” message after repeated failures?




Q6. 6. A payment, inventory, and shipping service form a multi-step saga using event *choreography*. Which challenge are they likely to face?




Q7. 7. A team adds a new field to a widely used event message type, but some consumers aren’t updated yet. What is the safest approach?




Q8. 8. A logging service publishes thousands of small messages per second and hits throughput limits due to per-message overhead. How could the team improve throughput without losing data?




Q9. 9. After a downstream service goes down, a client retries failed messages in a tight loop, causing a flood of retry attempts. What strategy best mitigates this retry storm?




Q10. 10. An enterprise uses a single message topic where every service publishes and subscribes to all events, with complex filtering in the bus. What is a likely problem with this “one bus for everything” approach?




Q11. 11. A service must save a new order to its DB and publish an *OrderCreated* event exactly once. What pattern prevents loss or duplication?




Q12. 12. A generic messaging interface hides broker details (RabbitMQ, Kafka), but broker-specific quirks still leak into code. What does this exemplify?




Q13. 13. Producers send messages faster than consumers can handle, causing growing queues. Which design approach prevents overwhelming the system?




Q14. 14. Another team uses a dedicated Saga *orchestrator* that sends commands via the bus to coordinate each step. What is a potential drawback?




Q15. 15. Why are sagas often preferred over two-phase commit (XA) for cross-service consistency in microservices?




software-architecture