CQRS
maang.io System Design Series
CQRS (Command Query Responsibility Segregation) splits a system's write path (commands) from its read path (queries), letting each scale and be modeled independently β writes handle complex domain logic, reads serve denormalized projections. Often paired with event sourcing, it's powerful but introduces an eventual-consistency gap between the two sides. Knowing when it's worth that complexity is the real skill.
This deep dive comes in three parts:
- Foundations & Core Concepts β separating commands from queries and read models.
- Internals β projections, pairing with event sourcing, and the consistency gap, with worked examples.
- Interview β Staff/Principal Q&A: when CQRS helps, when it's overkill, and handling staleness.
CQRS β Part 3: System Design & Interview Mastery
maang.io System Design Series
What is this?
You now know CQRS from the door to the back of the kitchen β the two machines, the command write path, the projectors, the ticket spike of Event Sourcing. This chapter is where that knowledge earns you the offer. An interviewer doesn't want you to recite "CQRS separates reads from writes" β they want to watch you reach for it at the right moment, defend the eventual-consistency gap when they push on it, and admit when it's the wrong tool. That's the difference between a senior signal and a memorized definition.
We'll do two things: first see where CQRS fits in real system-design prompts (with diagrams and a hard look at the consistency gap), then run a mock interview β for each question, what they're really asking, a model answer, and the senior line that signals you've actually run this in production.
The one-line idea: interviewers use CQRS to test whether you can recognize an asymmetric read/write workload, split it cleanly into a kitchen (commands, truth, rules) and an order board (queries, denormalized, fast), and then live honestly with the lag between the two β including telling them, unprompted, when the whole thing is overkill.
Sign in to continue reading
The rest of this lesson is available with a free account. Signing in with Google or Microsoft is free.
Sign in to read the full lesson