Skip to main content

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

ApproachEssence
Request-ResponseOne service makes a request to another and waits for a response (for example, HTTP REST or gRPC).
EDAA 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 ready
Premium

A concise answer to help you respond confidently on this topic during an interview.