This document discusses Command Query Responsibility Segregation (CQRS). It begins with an agenda and overview of why CQRS is used, including for complex domains, separating read and write boundaries, and enabling scalability. It then explains the typical architecture with one object for data access versus CQRS, which separates reads and writes into different objects or services. The document outlines some of the benefits of CQRS like skill set segregation and enabling divergent models. It also notes that CQRS is not a top-level architecture, but can be applied within bounded contexts, and emphasizes that CQRS is simply separating reads from writes rather than implying specific patterns or technologies.