Wait or process later, synchronous and asynchronous
Choosing between a synchronous call and a message queue directly shapes what users experience when a service slows down. You learn to decide step by step along a user journey, anticipate delays, duplicates and failures, and describe in the spec the in-between states the interface must display.
Lesson objective
By the end of this lesson, you will be able to decide, for each step of a journey, whether it should be processed while the user waits or handed to a message queue, to anticipate duplicates, delays and failures, and to specify what the user sees in the meantime.
Topics covered
- synchronous vs asynchronous
- message queue
- event-driven architecture
- eventual consistency
- background processing
Where it fits
Structuring the system
Should the system be split up, and when should you wait for a response rather than process later?
Lessons in this module
- Monolith, modular monolith or microservices
- Wait or process later, synchronous and asynchronous (this lesson)
What you will learn in the course
This lesson is part of the course Read and challenge a technical architecture
- Read an architecture diagram (context and container levels of the C4 model) and spot its components, flows, boundaries and gray areas.
- Turn vague expectations ("fast", "reliable", "scalable") into measurable non-functional requirements, written as quality attribute scenarios.
- Compare monolith, modular monolith and microservices, then synchronous calls and asynchronous processing, based on the team, the load and the consequences for the user.
- Assess data choices (source of truth, transactions, replicas, consistency), scaling and caching, and spot the bottleneck of a user journey.
- Assess dependencies on third-party services (composite availability, degraded mode, vendor lock-in) and a build or buy decision.
- Frame an architecture trade-off, record it in an ADR and treat technical debt as a product decision.
- Run an architecture review of your product or of a proposal, with ten questions, a risk register and explicit trade-offs.
Related courses
- Git for PMs: ship as a team without putting production at riskAdvanced · ~3 hr 30 min
- Explain how a web product works, from browser to serverAll levels · ~2 hr 30 min
- Design and test an API integration as a PMJunior · ~3 hr