Modern software architectures are amidst a paradigm shift — more and more software landscapes are built upon asynchronous and reactive patterns. This movement is understandable, as it takes scalability, resilience, and real-time integration to an elusive new level. Unfortunately, we observe that many new customer projects only use parts of this paradigm shift sensibly. Thus, they often end up with an only partially reactive architecture that introduces a lot of new complexity without allowing us to utilize the full potential of reactivity.
This workshop will teach you the reactive paradigm's central concepts, core ideas, and the corresponding manifest and make them understandable. Based on this knowledge, we will go into hands-on use cases to build an end-2-end reactive system based on a persistent event stream that allows us to follow a fully push-based design. We will understand concrete patterns, like event-centric persistence, the concept of hydrations or projections, and how to improve resilience and elasticity with such a software architecture.
Reactive architectures can be a game-changing tool for building cloud-native, highly responsive, and resilient applications. This workshop will give you the knowledge to decide if it's the right one for the job.
Part 1: Getting into it
Reactivity and the Reactive Manifest
Core Principles of Slicing Services Efficiently
Hands-on: Slicing for a given Problem Domain
Part 2: The Hard Parts
Data Ownership & Eventual Consistency
Data Duplication and Sagas
Core Principles of Sharding for Scale
Hands-on: Labs to build a Reactive Service
Part 3: Let it flow
Commands considered an Antipattern
Hands-on: Shifting event-based to stream-based
Summary & Cool Down