How do microservices communicate — synchronous vs asynchronous, and when each?
Reviewed by Gurusankar M.
Short Answer
Synchronous (REST/gRPC) is simple and immediate but couples services and propagates failures/latency. Asynchronous (message broker / events) decouples, buffers load, and improves resilience, at the cost of eventual consistency and harder debugging. Use sync for queries needing an immediate answer, async for workflows/notifications.
On this page
Concept Made Simple
Coffee Chat Question
“How do microservices communicate — synchronous vs asynchronous, and when each?”
Remember It Faster
Mind Map Answer
- Sync (REST/gRPC)
- immediate, simple, tight coupling
- Async (broker)
- decoupled, resilient, eventual
- Sync for
- read/query needing an answer now
- Async for
- events, workflows, notifications
Think Beyond the Expected
What If?
A chain of 5 synchronous service calls keeps timing out — what architectural smell is that?
Synchronous call chains couple availability multiplicatively (each hop must be up and fast) and amplify latency. It's a sign to flatten the chain, cache, or move parts to async/event-driven so a slow downstream doesn't cascade failures upstream.
Real World
Over-using synchronous calls creates fragile 'distributed monoliths'; mature systems push workflows onto events/queues and reserve sync calls for genuine request/response reads.
Interviewer's Expectation
Keywords they're listening for:
- sync vs async trade-offs
- coupling/latency amplification
- eventual consistency cost of async
- choose by use case
- avoid long sync chains
Common Mistakes
- Long synchronous call chains
- Using async everywhere (debugging pain)
- Ignoring partial-failure handling on sync calls
Best Practices
- Async for workflows/events; sync for immediate reads
- Add timeouts/circuit breakers to sync calls
- Avoid deep synchronous chains
Follow-up Questions
- What is a 'distributed monolith'?
- How does async messaging improve resilience?
- When is gRPC preferred over REST internally?
Continue Learning with AI
Take this question deeper with your favourite AI assistant. Pick a depth, copy the prompt, or open it directly — AI is your learning companion, not a shortcut.
Plain-language foundations
I'm preparing for a software engineering interview and want to understand this from scratch, as a beginner. Topic: Communication (Microservices) Interview question: "How do microservices communicate — synchronous vs asynchronous, and when each?" Please: 1. Explain the core idea in simple, plain language, using an everyday analogy. 2. Define any technical terms you use. 3. Walk through one small, concrete example. 4. Finish with a single sentence I can easily remember. Keep the tone friendly and assume I'm new to this topic.
Was this answer helpful?
Affiliate links
Tools for Your Developer Workspace
Equipment for a comfortable, productive setup.
As an Amazon Associate I earn from qualifying purchases.
- MonitorView on Amazon : BenQ EW2790U 27-inch Monitor (opens in a new tab)
BenQ EW2790U 27-inch Monitor
- LaptopView on Amazon : Acer Aspire One Laptop (opens in a new tab)
Acer Aspire One Laptop
- Office ChairView on Amazon : Wakefit Gravita Ergonomic Office Chair (opens in a new tab)
Wakefit Gravita Ergonomic Office Chair