Workshop: Seven Steps to CQRS Heaven for your Cloud Native Applications
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!