This document provides an introduction to the Command Query Responsibility Segregation (CQRS) pattern for building scalable multi-user systems. CQRS separates read and write operations by using different models and data stores for each. Commands represent write operations that mutate state, while queries return data without modifying it. The CQRS pattern is useful for large, distributed systems with complex business logic where separating reads and writes can improve scalability. It allows splitting development tasks between teams and optimizing read and write operations independently. The document reviews the key components of CQRS including commands, events, domain objects, and persistent view models and provides an example implementation using .NET.