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.
Offered By


Programming Reactive Systems
École Polytechnique Fédérale de LausanneAbout this Course
Some experience in programming, preferably in Scala.
What you will learn
Understand how back-pressure controls flows of data
Transform and consume infinite and intermittent streams of data with Akka Stream
implement systems that can scale out according to a varying workload
Design systems resilient to failures
Skills you will gain
- Software Design
- Microservices
- Reactive Programming
- Cloud Computing
- Distributed Computing
Some experience in programming, preferably in Scala.
Offered by
Syllabus - What you will learn from this course
Introduction, Recap and Asynchronous Programming
This module shows you how to get started with the course. After setting up your machine to work on and to submit assignments, it will provide you with a recap of the basics of the Scala language. Finally, you will encounter the first topic of the course, asynchronous programming with Futures.
The Actor Model
This module presents the Actor model: after analyzing its advantages and strengths, you will learn the semantics and design principles of actor systems before learn how to concretely test actor-based programs
Handling Failure and State
This module further explores the Actor model by showing useful patterns used to create complex and resilient programs
Distributed Computing
Actors allow you to decouple a program in units that can be distributed on a single or on multiple machines. This module elaborates on the power and the consequences of distributed computation
Frequently Asked Questions
When will I have access to the lectures and assignments?
What will I get if I purchase the Certificate?
Is financial aid available?
More questions? Visit the Learner Help Center.