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.

Watch the course author, Wade Waldron, give some background on the course

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
  6. CQRS/ES
    • 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

Next Sessions:

Check back later for new public classes.
Or if you’re a Lightbend subscriber please contact Lightbend to request a private class.