Beyond Distributed Monoliths: Reactive Microservices At Scale
One Day Workshop - May 31, 2023 — 09:00-17:00
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
Coupling and Cohesion
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
Everything is a stream?!
Thinking Push Based
Commands considered an Antipattern
Hands-on: Shifting event-based to stream-based
Summary & Cool Down
David is Coding Architect at SQUER, a Viennese Software Company, which is working with different stacks and environments, but always an overarching mission: connect ideas and provide impact — with technology. He spends much of his time on the frontlines tackling the challenges of scaling software and complex domains, with a strong focus on reactive systems, cloud-native architectures and state of the art web technologies. David enjoys sharing his knowledge as a speaker at conferences and as a lecturer for his post-diploma courses at the University of Applied Sciences Technikum Vienna.