How does EDA differ from request-response architecture?
EDA (event-driven architecture) and request-response architecture are two different approaches to service interaction. They differ in the direction of communication, synchronicity, and the degree of component dependency.
1. Interaction principle
| Approach | Essence |
|---|---|
| Request-Response | One service makes a request to another and waits for a response (for example, HTTP REST or gRPC). |
| EDA | A service publishes an event, and other subscribers react to it asynchronously, without waiting. |
Example:
- Request-Response → the "Orders" service calls "Payments" and waits for confirmation.
- EDA → the "Orders" service publishes the "OrderCreated" event, and "Payments" processes it on its own.
2. Type of connection
- Request-Response: tight coupling: a service must know the address and contract of the other.
- EDA: loose coupling: the publisher does not know its subscribers, the connection goes through a message broker.
3. Synchronicity
- Request-Response: synchronous: the calling service blocks until it gets a response.
- EDA: asynchronous: everything works independently and in parallel.
4. Scaling and fault tolerance
- Request-Response is harder to scale: a failure in one node drags a chain of errors along.
- EDA scales more easily: the broker buffers events, and services process them at their own pace.
5. Use cases
- Request-Response: for direct, critical requests ("get profile", "create order").
- EDA: for event-driven reactions ("payment completed", "item delivered").
Summary:
Request-Response is a point-to-point, synchronous dialogue between services. EDA is a stream of asynchronous events, where services react to changes without depending on each other.
Short Answer
Interview readyPremium
A concise answer to help you respond confidently on this topic during an interview.