Problem
Single model serves writes (invariants, normalization) and reads (joins, denormalization) — compromises both.
Also known as: cqrs, command-query-separation, read-write-separation
Separate read and write models to optimize each: writes for consistency, reads for query performance and flexibility.
Single model serves writes (invariants, normalization) and reads (joins, denormalization) — compromises both.
Medium — separate read/write stores, projection workers
High — monitor lag, handle projection failures
Medium — model separation, consistency boundaries
Projection lag → stale reads (user sees old data)
Projection failure → read model corrupt, needs rebuild
Write model invariants not enforced in read model
Dual-write inconsistency if not using event sourcing