Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems as per the Reactive Manifesto. Such systems are based on asynchronous message-passing, and their basic building-blocks are event handlers. This course teaches how to implement reactive systems in Scala and Akka by using high-level abstractions, such as actors, asynchronous computations, and reactive streams. You will learn how to: - use, transform and sequence asynchronous computations using Future values - write concurrent reactive systems based on Actors and message passing, using untyped Akka and Akka Typed - design systems resilient to failures - implement systems that can scale out according to a varying workload - transform and consume infinite and intermittent streams of data with Akka Stream in a non-blocking way - understand how back-pressure controls flows of data
What you'll learn
use and transform asynchronous computations with Future values
design and implement concurrent reactive systems using Actors and message passing
create systems resilient to failures
scale out systems based on workload
process infinite and intermittent data streams using Akka Stream
Course objectives
understand the fundamentals of reactive programming
apply reactive programming principles to real-world applications
implement effective back-pressure mechanisms to control data flow