Data & Consistency
Separate command (write) and query (read) models for scalability and flexibility
Split responsibilities: writes validate and emit events; reads use optimized materialized views. Scale and evolve each side independently.
When read and write workloads/SLAs differ significantly, or when you need specialized read models and high scalability.
High-scale APIs needing tailored read models and independent scaling of reads/writes.
# CQRS flow sketch
POST /cmd -> writeModel + publish(event)
GET /query -> readModel
consumer(event) -> update(readModel)
Search and feed projections from Kafka
Billions of events/dayOrder writes vs catalog reads separation
Global storefrontsLedger commands + analytic read models
Strict SLAs, auditsHigh - Read stores scale independently
High - Pipelines and projections
Medium to High - Extra infrastructure