Core Idea
Synchronous communication is an interaction pattern where a caller sends a request and blocks execution, waiting for a response before proceeding—creating temporal coupling between caller and receiver.
Definition
Synchronous communication is an interaction pattern where a caller sends a request and blocks execution, waiting for a response before proceeding. Both parties must be available simultaneously—the caller cannot continue until the receiver returns a result. This creates a direct dependency on receiver availability and response time.
Underpins REST APIs, gRPC, database queries, and traditional function calls.
Key Characteristics
- Blocking operation: Caller suspends execution and waits, unable to perform other work
- Temporal coupling: Both parties must be available simultaneously—receiver unavailability means caller failure
- Additive latency: Response time equals the sum of all service latencies in the call chain
- Strong consistency: Immediate feedback enables atomic-like behavior from the caller’s perspective
- Simpler mental model: Request-response flows are easier to understand and debug
- Error propagation: Downstream failures immediately propagate back as exceptions
Example
Payment processing: An e-commerce checkout calls a payment gateway and waits for confirmation before completing the order—immediate consistency required.
Why It Matters
Service A’s response time becomes A’s latency plus B’s latency plus network overhead. If B is slow or unavailable, A degrades immediately. This cascades—any single failure can propagate throughout the call chain.
Correct choice when immediate feedback is essential: validating user input, checking balances, retrieving data to render a page. For background operations where eventual consistency is acceptable, Asynchronous-Communication is preferred.
Related Concepts
-
Dynamic-Coupling (synchronous calls create tight runtime coupling)
-
Coupling (parent concept covering all dependency types)
-
Software Architecture - The Hard Parts - Ford, Richards, Sadalage & Dehghani - 2022 (primary source material)
-
Asynchronous-Communication - Contrasting pattern enabling decoupling
-
Availability - Quality affected by synchronous dependencies
-
Fault-Tolerance - Resilience impacted by synchronous call chains
-
Orchestration - Workflow pattern often using synchronous coordination
-
Scalability - Growth pattern constrained by synchronous dependencies
-
Elasticity - Burst handling affected by synchronous capacity coupling
Sources
-
Ford, Neal; Richards, Mark; Sadalage, Pramod; Dehghani, Zhamak (2022). Software Architecture: The Hard Parts - Modern Trade-Off Analyses for Distributed Architectures. O’Reilly Media. ISBN: 978-1-492-08689-5.
- Chapter 8: Communication
- Available: https://www.oreilly.com/library/view/software-architecture-the/9781492086888/
-
GeeksforGeeks (2024). “Synchronous vs. Asynchronous Communication - System Design.”
-
Platform Engineers (2024). “A Deep Dive into Communication Styles for Microservices: REST vs. gRPC vs. Message Queues.” Medium.
-
Microsoft Learn (2024). “Interservice communication in microservices - Azure Architecture Center.”
-
TechTarget (2024). “Synchronous vs asynchronous communications: A complete guide.”
-
Three Dots Labs (2024). “Synchronous vs Asynchronous Architecture.”
AI Assistance
This content was drafted with assistance from AI tools for research, organization, and initial content generation. All final content has been reviewed, fact-checked, and edited by the author to ensure accuracy and alignment with the author’s intentions and perspective.