Applying (D)DDD and CQ(R)S to Cloud Architectures with Spring Boot and Docker
|Architecture & Security|
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 workshop we 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 Workshop consists of several steps/iterations each with a small lecture/presentation upfront concluding a dedicated implementation goal that needs to be solved supported by mentor guidance and with a small retrospective at the end.
At the end of the day 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 while using modern technology standards.
We'll use IDEA, Git, Java 10, Kotlin, Spring (Boot, REST, JPA, Messaging), RabbitMQ/Kafka, MySQL/Elasticsearch, Docker/Kubernetes.
Benjamin has a long-term and hands-on experience with introducing, building, running, coaching and speaking about Java, Microservices (including DDD and SCS – self-contained systems), Docker/Containerization and disruptive technologies. At day he works as Tech Lead for Cloud Technologies at codecentric. At night he hacks on innovative trends like FaaS, Service Meshes, Voice UIs and IoT. At evenings/weekends he organizes workshops, talks, hackathons and code retreats at the Software Crafters Community Jena (Softwerkskammer Jena), the Java User Group Thüringen and Devoxx4Kids Thüringen. He serves as a board member at the Java Aktuell Magazine, at microXchg and JavaLand conference – leading the Architecture and Methodology & Culture streams.