This document provides an introduction to CQRS (Command Query Responsibility Segregation), an architectural pattern that separates read and write operations into different models. It discusses the motivation for using CQRS including improved performance, scalability, and testability. Some potential downsides are increased complexity and the need to embrace eventual consistency. The document explains key CQRS concepts like commands, queries, and event sourcing. It also compares CQRS to other architectural patterns like hexagonal architecture, onion architecture, and MVC.