Event-Driven vs. Request-Response
This page will help you decide what communication style to use between services or components.
Answer a few questions → Get a clear recommendation.
Options you can choose from:
Event-Driven
Services communicate using events that are published and subscribed to by other services. Typically implemented using a message bus (e.g., Kafka, RabbitMQ, AWS SNS/SQS).
Request-Response
The client sends a request and waits for an immediate response. Typically uses synchronous protocols such as REST or gRPC.
Answer a few simple questions below. 👇
Based on your answers, you will receive specific recommendations that you can click on to view in detail.
Decision questions
Answer honestly according to the current needs of the system.
1. How critical are immediate responses?
2. How often are new services added or changed?
3. How complex are the interactions between parts of your system?
4. How important is it that the system keeps working even if one part fails?
5. How much data is sent and how often do services communicate?
6. What is the team's experience with messaging and async systems?
Result
Based on your answers, see the recommended solution below. 👇
Each option has its own page where you will find:
- when it is appropriate
- when it is not
- typical usage
- most common mistakes
☕ If you found this page helpful, consider supporting my work by buying me a coffee.
Important note
⚠️ Both approaches are valid and often combined in modern systems. The choice depends on latency, number of services, system dynamics, and team experience.
Consider the result as a recommendation, not a dogma.
Feedback & Sharing
Give us your thoughts on this page, or share it with others who may find it useful.
Share with your network:
Feedback
Found this helpful? Let me know what you think or suggest improvements 👉 Contact me.