Module
Module 3 of 6Lesson 2 of 2~17 min

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

  1. Monolith, modular monolith or microservices
  2. 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.