Advanced Domain-Driven Design: Modelling, CQRS & Event-Sourcing in practice

Target audience: Software Developers & Architects
Structure: 30% lecture and 70% hands-on modelling and coding
Duration: 3 days

Modelling complex and scalable IT systems is a difficult task and there is no flowchart on how to approach such a challenge as every project has different requirements, context and teams implementing it. Domain-Driven Design is an approach that focuses on managing this complexity by aligning with the business domain to develop highly maintainable systems that deliver on business requirements.

Two technical patterns for leveraging DDD are CQRS and EventSourcing. 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 one possible implementation of the write stack which gives additional 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.

What you will learn:

  • How to analyse business requirements and model them using Event Storming

  • How to divide complex systems into smaller, manageable, domain-aligned sub-systems: Bounded Contexts

  • How to decouple reads and writes for enhanced scalability with CQRS

  • How to design and implement Event-Sourced microservices

  • How to deal with Eventual Consistency in CQRS systems

  • How to implement, monitor and replay projections

  • How to meet performance and scalability requirements