How it works
Command side
Commands express intent and pass through validation and domain rules before producing a state change.
Query side
Read models are shaped for the exact access pattern, avoiding complex joins or domain objects in high-volume query paths.
Synchronization
When read models update asynchronously, clients must tolerate a delay between an accepted command and the visible query result.
Use the smallest version
Separate code paths can provide clarity without immediately requiring separate databases, event sourcing, or a distributed deployment.