This document discusses microservices architecture with CQRS and event sourcing. It describes microservices as independently deployable services with private databases. The challenge is distributed transactions across services. Event-driven architecture addresses this by having services publish and subscribe to events on state changes. Event sourcing persists object states as sequences of events stored in an event store. The event store delivers events to subscribers. CQRS separates read and write functions, with writes publishing domain events and reads consuming events independently. Using CQRS and event sourcing together provides scalability, simplicity, flexibility and responsiveness to business needs. Apache Kafka can be used to implement the event store.