What is event choreography in event-driven systems?
Event choreography is a decentralized approach where each service listens for events and reacts independently without a central controller. Services communicate by producing and consuming events directly.
Click to reveal answer
beginner
What is event orchestration in event-driven systems?
Event orchestration uses a central controller (or orchestrator) that directs the flow of events and tells services what to do and when, coordinating the overall process.
Click to reveal answer
intermediate
How does Kafka support event choreography?
Kafka acts as a message broker where services publish and subscribe to event topics. Each service independently reacts to events it cares about, enabling choreography without a central controller.
Click to reveal answer
intermediate
What is a key advantage of event choreography over orchestration?
Choreography reduces tight coupling by letting services act independently, which can improve scalability and flexibility since no central controller is needed.
Click to reveal answer
intermediate
When might event orchestration be preferred over choreography?
Orchestration is preferred when you need clear control over the sequence of events, easier error handling, and centralized monitoring of the workflow.
Click to reveal answer
In event choreography, who controls the flow of events?
AEach service controls itself independently
BA central orchestrator controls all events
CThe database controls the events
DThe user manually triggers events
✗ Incorrect
In choreography, each service listens and reacts independently without a central controller.
Which Kafka feature is essential for event choreography?
ATopics for publishing and subscribing events
BCentralized workflow engine
CDirect service-to-service calls
DDatabase triggers
✗ Incorrect
Kafka topics allow services to publish and consume events independently, enabling choreography.
What is a main benefit of event orchestration?
ADecentralized control
BCentralized control and monitoring
CNo need for event brokers
DServices never communicate
✗ Incorrect
Orchestration uses a central controller to manage event flow and monitor the process.
Which approach can improve scalability by reducing tight coupling?
When is event orchestration more suitable than choreography?
AWhen you want no central monitoring
BWhen you want decentralized control
CWhen services never communicate
DWhen you need strict sequence and error handling
✗ Incorrect
Orchestration is better for strict control of event sequences and easier error handling.
Explain the difference between event choreography and event orchestration in simple terms.
Think about who tells the services what to do.
You got /3 concepts.
Describe a scenario where event choreography would be better than orchestration and why.
Imagine many services working independently without waiting for a boss.
You got /4 concepts.
Practice
(1/5)
1. What is the main difference between event choreography and event orchestration in Kafka-based systems?
easy
A. Choreography lets services react independently; orchestration uses a central controller.
B. Choreography requires a central controller; orchestration lets services react independently.
C. Both use a central controller but differ in message format.
D. Choreography is synchronous; orchestration is asynchronous.
Solution
Step 1: Understand event choreography
Event choreography means each service listens and reacts to events on its own without a central manager.
Step 2: Understand event orchestration
Event orchestration means a central controller tells services what to do and when, managing the flow.
Final Answer:
Choreography lets services react independently; orchestration uses a central controller. -> Option A
Quick Check:
Choreography = independent reaction, Orchestration = central control [OK]
Hint: Choreography = no boss; orchestration = boss controls flow [OK]
Common Mistakes:
Confusing which uses a central controller
Thinking both require central control
Mixing synchronous and asynchronous concepts
2. Which Kafka component is typically used in event orchestration to coordinate services?
easy
A. Kafka Topics with independent consumers
B. A central orchestrator service producing commands
C. Kafka Connect for data integration
D. Kafka Streams for independent event processing
Solution
Step 1: Identify orchestration role
Orchestration needs a central service to control and send commands to other services.
Step 2: Match Kafka components
Kafka Topics and Streams are used for event flow, but orchestration requires a central orchestrator producing commands.
Final Answer:
A central orchestrator service producing commands -> Option B
Quick Check:
Orchestration = central orchestrator service [OK]
Hint: Orchestration needs a central command sender [OK]
Common Mistakes:
Choosing Kafka Topics as the controller
Confusing Kafka Connect with orchestration
Thinking Kafka Streams alone orchestrates
3. Given this Kafka event flow in choreography style:
Service A publishes event 'OrderCreated' to topic 'orders'.
Service B listens to 'orders' and publishes 'PaymentProcessed' to topic 'payments'.
Service C listens to 'payments' and updates inventory.
What happens if Service B fails to publish 'PaymentProcessed' event?
medium
A. Service C will not update inventory because it never receives the event.
B. Service C updates inventory anyway because it listens to 'orders'.
C. Service A retries publishing 'OrderCreated' event automatically.
D. A central orchestrator will resend 'PaymentProcessed' event.
Solution
Step 1: Trace event flow in choreography
Service A publishes 'OrderCreated', Service B reacts and publishes 'PaymentProcessed', Service C listens to 'payments'.
Step 2: Analyze failure impact
If Service B fails to publish 'PaymentProcessed', Service C never receives that event and cannot update inventory.
Final Answer:
Service C will not update inventory because it never receives the event. -> Option A
Quick Check:
Missing event means downstream service does not act [OK]
Hint: In choreography, missing event stops downstream actions [OK]
Common Mistakes:
Assuming Service C listens to 'orders' directly
Thinking Service A retries automatically
Expecting a central orchestrator in choreography
4. You have this orchestration code snippet controlling Kafka services:
Hint: Orchestration requires waiting for each command to finish [OK]
Common Mistakes:
Blaming Kafka topic subscription
Assuming Service C ignores commands
Thinking message loss causes order issue
5. You want to design a Kafka system for an online store where payment processing must strictly happen before inventory update, but you want to avoid a central orchestrator. Which approach fits best and how to ensure order?
hard
A. Use choreography but rely on manual retries to fix order issues.
B. Use event orchestration with a central controller sending commands in order to services.
C. Use orchestration but allow services to process events independently without waiting.
D. Use event choreography with services emitting events and consumers processing in sequence using Kafka partitions and consumer groups.
Solution
Step 1: Identify requirement
Payment must happen before inventory update, but no central orchestrator allowed.
Step 2: Choose choreography with ordering
Event choreography fits because services react independently. To ensure order, use Kafka partitions and consumer groups to process events in sequence.
Final Answer:
Use event choreography with services emitting events and consumers processing in sequence using Kafka partitions and consumer groups. -> Option D
Quick Check:
Choreography + Kafka ordering = correct sequence without central control [OK]
Hint: Choreography + Kafka partitions ensure order without central control [OK]
Common Mistakes:
Choosing orchestration despite no central controller allowed
Ignoring Kafka partition ordering
Relying on manual retries for order
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.