O'Reilly logo
live online training icon Live Online training

Reactive Architecture: Beyond the Basics

Designing actor-based systems at scale

Duncan DeVore
Henrik Engstrom

Reactive architecture represents a paradigm shift in the way we reason about system form by embracing the fundamentals of distributed computing. Through the application of these reactive principles, we can build applications that “react” to environmental changes by adopting the reactive know-how for building apps that are responsive, resilient, and elastic in the face of failure and extreme load. As a result, you can be confident that your application design is a practical way to make sure you are meeting the needs of your customers and not losing out on revenue.

What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • How to work with and test Actors
  • How to build Reactive Architecture that is responsive, elastic, resilient, and message driven
  • How to manage system behavior and horizontal distribution

And you’ll be able to:

  • Design architecture that adheres to reactive principles
  • Build systems that “react” to environmental changes
  • Educate your teammates on powerful Reactive Architecture patterns and best practices

This training course is for you because...

  • You are an architect designing a Reactive Architecture
  • You are a developer building reactive applications in Akka, Java, and/or Scala
  • You are a technical leader looking to adopt a Reactive Architecture within your organization

Prerequisites

Code examples and exercises will be written primarily in Java with some Scala, so participants must have a basic knowledge of the Java language.

Participants that wish to follow along with the exercises will need a laptop with the following software installed:

Source code repository

All the original exercises and their corresponding solutions can be downloaded here:
https://github.com/ironfish/oreilly-reactive-with-akka

Recommended Preparation

Beginning Java

Learning Git

About your instructor

  • Duncan DeVore is a Software Engineer (Monitoring Team) at Lightbend (formerly Typesafe) who specializes in the design and implementation of distributed systems using the tenets of the Reactive Manifesto with Scala, Akka, and the Lightbend stack. Duncan believes in responsible design through functional programming with an abundance of test coverage, and he loves to code, present, and help others work through the challenges of distributed computing.

    Duncan’s specialties include distributed computing, microservice-based architectures, cloud computing, event sourcing, and CQRS. Duncan’s open source projects include journals for Eventsourced and Akka-Persistence based on the theory of event sourcing and CQRS. He is the coauthor of Reactive Application Development.

  • Henrik Engström graduated with a M.Sc degree in computer science in 1998 from the Royal Institute of Technology, then worked as a consultant up to his Lightbend (formerly Typesafe) employment as a software engineer in 2011. Henrik has not only vast experience in various types of programming, but also great domain knowledge within the finance, retail, and e-gaming industries.

    Apart from his major interest, programming languages, he is also an avid Arsenal supporter, black belt in Shotokan Karate, and a hobby wine connoisseur.

Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Day One (4-hours)

What is Reactive? (30 minutes)

Message Driven (1 hour, 30 minutes)

  • Actor Basics
  • Actor Lifecycle

Testing Actors (1 hour)

  • Synchronous unit testing
  • Asynchronous unit testing

Resilience (1 hour)

  • Supervision
  • Self healing

Day Two (4-hours)

Elasticity (2 hours)

  • Routers
  • Dispatchers

Behavior (1 hour)
- Become & Stash

Horizontal Distribution (1 hour)
- Remoting

Throughout both days: Ongoing Q&A with instructors, hands-on coding exercises after each section, and practical guidance on implementing a reactive architecture