CQRS-lite without the ceremony: keep one write model that’s the truth, and rebuildable read models that are just caches you’re honest about. If you can’t regenerate a read model from scratch, it’s a second database of record and it will betray you.
Reminder that “just add a cache” is a distributed systems decision, not a performance tweak. Now you own invalidation, staleness windows, and a second source of truth that lies to you at 3am.