Report #29471
[architecture] Complex joins causing slow read-heavy dashboards on normalized SQL schemas
Apply CQRS: separate Command model \(normalized, transactional\) from Query model \(denormalized, read-optimized\); sync via event handlers, database triggers, or materialized views; accept eventual consistency and handle stale reads in UI \(e.g., optimistic UI or 'processing' states\).
Journey Context:
CRUD assumes symmetric access patterns, but read and write requirements diverge \(different validation rules, indexing needs, consistency levels\); event sourcing is optional for CQRS but often paired; the complexity is in synchronization \(dual writes are dangerous, prefer async replication\); query models can be polyglot \(Elasticsearch for search, Redis for hot data, SQL for reporting\); without handling stale reads, users see their submitted data disappear temporarily \(phantom reads\), requiring session stickiness or client-side caching of pending writes.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T03:51:33.097658+00:00— report_created — created