Modelling of a complex IT system is a task that presents many challenges - starting from business requirements, through working with many development teams and ending on nonfunctional ones related to availability and scalability. Domain-Driven Design is an approach that focuses on managing this complexity by aligning with the business domains to develop highly maintainable systems that deliver on business requirements. Two technical patterns often used when implementing DDD are CQRS and Event Sourcing. The Command-Query Responsibility Segregation architecture is a battle-tested approach used to design extremely high scale systems by decoupling reads and writes.
Event Sourcing is an implementation of a persistence model where instead of updating the current state of the system we persist its whole history as a stream of events. This approach gives us benefits such as a 100% reliable audit log, ability to execute temporal queries, and replays that allow to gain new insights from historical data or correct data inaccurately processed in the past. In this training you will gain the necessary experience on how to model and implement complex systems using Domain-Driven Design, CQRS and Event Sourcing.
Event Sourcing is a pattern which challenges the status quo of persisting the data in microservices and distributed applications. In this training you will learn the basics of the pattern, and at the end of it you will be able to implement a simple application leveraging Command, Events, Aggregate and a Projection.More Information