Software that is aligned with the business needs of your customers is hard to build, and it is even harder to optimize for correct domain behaviour, execution performance and scalable information distribution at the same time. Distributing the model with microservices often falls short on the promised benefits and can leave you with a distributed monolith.
The secret to a successful implementation lies in the correct segregation of read and write models from a domain-driven perspective, and connections between them implemented with semantic events.
Join Marco Heimeshoff for these 5 half-day modules workshop as he’ll guide you to build semantic models with a high alignment between business and code.
Target audience
This workshop is for Architects and Senior Developers with a strong interest in Domain-Driven Design and modern message-driven architectures.
Regardless of your experience in either Object-Oriented Programming, Functional Programming, or other paradigms, all you need is the will and ability to build software with a focus on business behavior.
Program
In this course, you will learn how to scale your application so that any number of queries can be handled, while also maintaining a behaviour rich domain model that can deal with complex scenarios. Discover how Event Sourcing enables you to build highly cohesive and decoupled modules and changes the way you write and communicate about tests forever.
These patterns will help you to put your energy where the business value is, by letting you partition your team by their expertise and outsource the busy work. Drawing from Domain-Driven Design concepts, write code with Command Query Responsibility Segregation and learn how Event Sourcing tells a story in domain terms.
Keep your software system design in line with your organisation’s needs, improve readability, and strengthen your communication with key stakeholders.
Agenda
Session One
- Domain-Driven Design overview – Essential ideas and terminology
- Why, how and when to apply Domain-Driven Design
- Cynefin – Different levels of complexity in strategic design
- Making sense of your domain with various EventStorming flavours.
Session Two
- Bounded Context Mapping – Align your architecture with your organisational structure
- Modelling with Value Types, Entities and Aggregates
- Tactical DDD Patterns – Exercises in implementing domain models
- Hexagonal Architecture – Ports and Adapters in action
- Handling intent instead of editing data.
Session Three
- Events – Atomic building blocks of your domain
- Lossless semantic persistence with Event Sourcing
- Testing with events and commands
- Decoupling bounded contexts through events.
Session Four
- CQRS overview – Essential ideas and terminology
- Implementing read models
- Projecting streams of events into poly structured information
- Domain model performance optimization
- Dealing with scalability and eventual consistency.
Session Five
- Implementing policies with Sagas
- Strategies for long-lived, evolving event-sourced systems
- Strategies for distributed systems
- Benefits, risks and socio-technical implications of CQRS and Event Sourcing
- Optional: Application of CQRS & Event Sourcing in front-end development.
Learning Objectives
- Understand Domain-Driven Design (DDD) and when it applies
- Learn to model the domain and explore multiple solutions to choose from
- Align your design with your business needs using CQRS and DDD
- Build scalable and decoupled applications with Event Sourcing.
Online Workshop – How does it work
We will meet online in a virtual classroom and use presentation through screen share, collaborative architecture modelling on Miro and Solo- and Mob-programming with screen-shared IDEs. Every module will begin with a presentation via screen share and lead to a collaborative exercise. Discussions and questions are encouraged all the time.
The workshop will happen online and in live streaming: the trainer and all other participants will be in a video conference. You’ll be interacting and working together in real-time thanks to a variety of tools you’ll have at your disposal.
The workshop will keep its highly interactive and hands-on spirit despite being online.
This is why we require that all participants keep their webcam on for the whole duration of the workshop: this will enhance the quality of the communication and of the workshop as a whole.
You won’t be sitting at your desk watching slides and videos, and you’ll be engaged in real-time activities for the majority of the time… as if we were in a real classroom!
Why should you buy a ticket
These patterns will help you to put your energy where the business value is, by letting you partition your team by their expertise and outsource the busy work.
Drawing from Domain-driven design concepts, write code with Command Query Responsibility Segregation and learn how Event Sourcing tells a story in domain terms.
Keep your software system design in line with your organisation’s needs, improve readability, and strengthen your communication with key stakeholders.