Lightbend Reactive Architecture - Professional
Designing Reactive systems and microservices requires architects and teams to think differently about design - taking into account concurrency, messaging and coordination - in order to achieve the promise of resilient and elastic software. As microservices have emerged as the gold standard of developing modern software applications, every team needs to develop a deep understanding of how to design, build and operate software in a Reactive world if they want to remain relevant.
The Lightbend Reactive Architecture course teaches teams - from development managers to architects to software developers - how to think about and leverage Reactive architectures from design through to production operations.
The course presents a series of architectural exercises. Students will work in groups to address problems and design solutions. The exercises are completed without the use of code. This allows the course to appeal to a broad audience.
Benefit
- Build the confidence to design and deploy scalable, resilient, responsive and elastic systems
- Certified Lightbend Trainers share best practices for designing Reactive microservices
- Reactive techniques and patterns
Participant
- Developers and Architects looking to develop Reactive systems
- Architects with an interest in Domain Driven Design and related architectural patterns
- Managers and Team Leads looking for elasticity, resilience and scale in their products and systems
Outline
1. Why Reactive
- Reactive Manifesto
- Reactive Principles
- Reactive Systems
- Reactive Programming
- Actor Model
2. Domain Driven Design
- Ubiquitous Language
- Bounded Contexts
- Anti-Corruption Layers
- Command, Events, Queries
- Value Objects, Entities, Aggregates
- Services, Factories, Repositories
- Hexagonal Architecture
3. Reactive Microservices
- Microservices vs Monoliths
- Isolation of State, Space, Time, Failure
- Bulkheading
- Circuit Breakers
- Gateway Services
4. Consistency, Availability, Scalability
- Performance vs Scalability
- Strong Consistency vs Eventual Consistency
- Contention and Amdahl's Law
- Coherency and Gunther's Law
- Sharding
- CRDTs
5. Messaging and Coordination
- Synchronous vs Asynchronous Messaging
- Saga Pattern
- Two Generals Problem
- Delivery Guarantees
- Point to Point
- Publish/Subscribe
- Audit Logs
- Event Sourcing
- Command Sourcing
- CQRS
- Consistency, Availability, Scalability in CQRS
Logistics
Level: Intermediate - practical experience in software development and analysis is assumed
Length: Three days - 21 hours of classroom time, plus breaks
Approach: Extensive design and discussion - students design a Reactive application, analyzing a sample domain, and contrasting it with a monolithic application design
Requirements: Students must bring their own laptops. Pen, paper, sticky notes and whiteboards are assets for exercise work.
Related Blog Post
Introducing A New Remote/Onsite Training Course To Help Development Teams Learn Reactive Architectures
Related Trainings
- Lightbend Scala Language - Professional
- Lightbend Scala Language - Expert
- Fast Track to Akka with Scala
- Lightbend Akka for Scala - Professional
- Lightbend Akka for Scala - Expert
- Lightbend Akka for Java - Professional
- Lightbend Akka for Java - Expert
SHARE THIS WORKSHOP
INSTRUCTORS

Jonny Catlett
YoppWorks, Software Consultant
Jonny is a Senior Software Developer with YoppWorks. Jonny brings over 18 years of diverse industry experience and a master’s degree in computer science from the University of Central Florida. In his tenure, Jonny has worked in industries such as finance, power generation, commerce, and virtual and constructive simulators. He is an advocate for functional programming and reactive design patterns and brings a wealth of knowledge around distributed and reactive applications. Jonny is committed to always learning new technologies and has a passion for teaching and empowering others.

Reid Spencer
YoppWorks, Leader of Technology Team
Trainer and Consultant.
View Workshops Workshop Tickets