Many software architectures may benefit from the introduction of (Distributed) Domain-Driven Design and Command Query (Responsibility) Separation. No matter if you are maintaining large legacy software systems whether you start a new microservices platform as greenfield approach one always has to think about the domain language and service design. In this session I want to show you at a given example application how to get started with introducing domain models, bounded contexts and implementing CQRS where it makes most sense while trying to avoid the technical debt trap e.g. misconceptions and fallacies.
The session consists of several parts which outline the theory behind the building blocks in conjunction with according real world implementation examples. The provided code is based on modern technology standards: Java, Kotlin, Spring (Boot, REST, JPA, Messaging), RabbitMQ, Kafka, MySQL, Elasticsearch, Docker, Kubernetes.
At the end you will be able to apply many DDD principles on your own and have learned how to tailor systems according to their domain – effectively and efficiently.