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!
Other Workshops:
Tracks
-
Predictive Architectures and ML
Learn about cutting-edge ML applications and their underlying architectures.
-
Mission Critical Data Engineering
Explore a variety of data engineering use-cases and applications
-
Production Readiness
Observability, emergency response, capacity planning, release processes, and SLOs for availability and latency.
-
Humane Leadership
A look at leadership with an emphasis on empathy, taking chances and building other leaders within organizations and teams
-
Developer Experience: The Art and Science of Reducing Friction
Explore how to reduce developer friction between teams and stakeholders.
-
Blameless Culture
Absorb the lessons learned from failures and outages in a human-centric process.
-
Modern Computer Science in the Real World
Learn how companies are applying recent CS research to tackle concurrency, distributed data, and coordination.
-
Architectures You’ve Always Wondered About
Join companies like Google, Netflix, Bloomberg, BBC, and more as they share an inside glimpse on their next-gen architectures and challenges of delivering at massive scale.
-
Bare Knuckle Performance
Learn from practitioners on the challenges and benefits of architecting for performance and much more.
-
Java - The Interesting Bits
Learn the new features in the recent and near-future releases of Java and the JVM and what they offer.
-
Ethical Considerations in Consciously Designed Software
Design considerations for various contexts, locations, security and privacy requirements.
-
Operating Microservices
Learn from practitioners operating and evolving systems in performance demanding environments.
-
Shift-Left Cybersecurity: Developer Accountability for Security
Learn how to make security an inherent part of the software development process.
-
Native Compilation Is Back (A Look at Non-Vm Compilation Targets)
Issues with native compilation for in browser-based and server-side environments
-
Troubleshooting in Production
Learn debugging strategies for complex and high stakes environments where standard debuggers and profilers fail.