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 a partially reactive architecture that introduces further 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, from a reactive frontend integrated via GraphQL back to a persistent event stream, allowing 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 by such a software architecture.
Who is it for?
The focus of the class is on applying reactive concepts. This means that while the concepts will be explained, David Leitner will make sure you focus on creating working code. The course will be agnostic so that it does not matter the programming language you use — the contents are applicable language/framework-agnostic. Thus, please bring your laptop to develop with your favorite environment and IDE.
What will participants learn?
We will explore core reactive concepts, stream theory, and common used patterns, before learning hands-on how to build a reactive application. In the next step, David will introduce you to Apache Kafka, a popular streaming platform you can use to utilize the full power of ractive sytems. We will also explore the surrounding ecosystem like ksqlDB, differen streaming approaches, and popular tools to implement hydrations and projections.
- Explore event streams like Apache Kafka
- Understand reactive programming concepts and patterns
- Learn how GraphQL support e2e reactive architectures
- Understanding the concept of hydrations and projections
- Explore the reactive ecosystem like Apache Samza, ksqlDB, Eventstore and many more.
What Background should participants have?
Participants should have experience working in at least one of these programming languages: Java/Kotlin, C# or Node. Basic knowledge of distributed architectures is an advantage