This document discusses moving from a traditional domain-driven design (DDD) architecture to an architecture using command query responsibility segregation (CQRS). It begins with an overview of DDD concepts like bounded contexts, the ubiquitous language, and core domains. It then discusses issues with a traditional "best practice" architecture, noting that reading and writing are different operati