Many software architectures may benefit from the introduction of (Distributed) Domain-Driven Design and Command Query (Responsibility) Separation. No matter whether you are maintaining large legacy software systems or start a new microservices platform as greenfield approach, one always has to think about the domain language and service design. In this talk Benjamin wants to show, using an application as an example, how to get started with introducing domain models, bounded contexts and implementing CQ(R)S where it makes most sense while trying to avoid the technical debt trap, e.g. misconceptions and fallacies.
The talk consists of several steps/iterations, each with a small lecture, a dedicated implementation goal that will be solved. At the end one will be able to apply many DDD principles and will have learned how to tailor systems according to their domain — effectively and efficiently while using modern technology standards.
You will see the hands-on usage of Java 10, Kotlin, Spring Boot 2, RabbitMQ and Kafka, MySQL and Elasticsearch, Docker and Kubernetes including many suggestions for best practices and infrastructure as code.