This hands-on session is comprised of three parts:
- A brief orientation of Domain-Driven Design (DDD)
How it enables us to devise software solutions to complex business problems in a systematic manner.
You will learn:
- What a domain model is, why establishing an ubiquitous language to foster a shared understanding of a domain matters, how to discover subdomains and design bounded contexts
- The building blocks of a domain model - aggregates, entities, value objects, events and more.
- Event-driven architectures, the CQRS and Event Sourcing concepts and their advantages, and the importance of eventual consistency and location transparency.
- Domain Modeling
An example of DDD in practice, where a collaborative modeling technique known as Event Modeling is used to analyze and model a specific business domain, resulting in a blueprint for implementing a system that supports the gathered domain requirements. - Axon Framework
The domain model from part two is realized using the Axon Framework, which provides the foundations for applying DDD, CQRS and Event Sourcing in a JVM environment.
Through a number of exercises, you’ll implement an event-sourced application and key components (aggregates, and projections) and learn about commands, events and queries; finally, you’ll get an introduction to Axon Server and its function as an event store.
At the end of this workshop, you’ll have learned the essentials of DDD and modeling a business domain, as well as implementing an event-driven system based on a domain model.
Prerequisites
Programming languages used throughout the course (basic knowledge of both is required):- Java (and the Spring framework)
- Kotlin