Workshop: Seven Steps to CQRS Heaven for your Cloud Native Applications

Location: Marquis C, 9th fl.

Duration: 9:00am - 4:00pm

Day of week: Friday

Level: Advanced


No prerequisites

Many software architectures may benefit from the introduction of 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 overall domain language, specific service design and different context map patterns using the ideas of strategic and tactical design in distributed Domain-Driven Design (DDD) for modeling a valid system architecture. As the needs of the architecture become more sophisticated and while we push our project forward into the cloud native age we steadily improve our application up to the point where we realize that also CRUD datastores might not be sufficient anymore.

This workshop goes one step or literally even seven steps further and shows you different approaches of why, where and how to upgrade your DDD architecture to the next level with CQRS. Or in short: We will checkout seven unique steps to reach CQRS heaven to be happy again with our cloud native applications.

Thus, we discuss seven different approaches of the CQRS pattern on a specific example app and help you to get started with implementing CQRS where it makes most sense while trying to avoid the technical debt trap, e.g. misconceptions and fallacies. In particular you will learn how to synchronize different data sources by separating commands and queries

  • within a class,
  • with the application service as explicit synchronization,
  • with spring application events as implicit synchronization,
  • with a trigger as implicit synchronization,
  • with transaction log tailing as synchronization,
  • with Domain Events as synchronization,
  • and with the Axon framework.

At the end one will be able to apply CQRS from theory to practice and will have learned how to upgrade his own cloud native application with a suitable approach in minutes – effectively and efficiently while using modern technology standards and containers all the way!

Speaker: Benjamin Nothdurft

Technical Lead for Cloud Technologies @codecentric

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 Technical 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 Craft Community Thüringen (Softwerkskammer Thüringen), the Java User Group Thüringen, Devoxx4Kids Thüringen, Hackathons Group Thüringen, Golang & Cloud-Native Group Leipzig as well the Software Architecture Group Leipzig. He serves as a board member at the Java Aktuell Magazine, at microXchg and JavaLand conference – leading the Architecture and Methodology streams.

Find Benjamin Nothdurft at


This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.