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.
![École Polytechnique Fédérale de Lausanne](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/http://coursera-university-assets.s3.amazonaws.com/5c/6a4547134c4268aa28c539f15c7ff7/EPFL-Logo-300-300.png?auto=format%2Ccompress&dpr=1&w=28&h=28)
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/1a4589dccee10648821b7ea23e5fca9a.png?auto=format%2Ccompress&dpr=1&q=80)
![École Polytechnique Fédérale de Lausanne](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/http://coursera-university-assets.s3.amazonaws.com/9f/ef20ba7f7f457db079ed5231bde306/EPFL-Logo-200-48.png?auto=format%2Ccompress&dpr=1&h=45)
Programming Reactive Systems
![Roland Kuhn](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-instructor-photos.s3.amazonaws.com/38/712b2405e2ad64fc6a3046dc3605d8/_RK_photo.jpg?auto=format%2Ccompress&dpr=1&w=75&h=75&fit=crop)
![Konrad Malawski](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-instructor-photos.s3.amazonaws.com/73/9f94176d1e41c1bf05e55072b566b3/ktoso-lambda-look-500.jpg?auto=format%2Ccompress&dpr=1&w=75&h=75&fit=crop)
![Martin Odersky](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-instructor-photos.s3.amazonaws.com/4f/7d9bfc74644bd2d6f945b21442a620/martinodersky.jpeg?auto=format%2Ccompress&dpr=1&w=75&h=75&fit=crop)
Instructors: Roland Kuhn
Sponsored by Coursera Learning Team
3,252 already enrolled
(31 reviews)
Recommended experience
What you'll 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
Details to know
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/31ebcba3851b87d1d8609abf15d0ff7e.png?auto=format%2Ccompress&dpr=1&w=24&h=24)
Add to your LinkedIn profile
See how employees at top companies are mastering in-demand skills
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/74c8747e8210831049cf88dd4eefe26c.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=320)
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/de1a6556fbe605411e8c1c2ca4ba45f1.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=259)
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/de1a6556fbe605411e8c1c2ca4ba45f1.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=333)
There are 7 modules in this course
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.
What's included
5 videos9 readings3 programming assignments
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
What's included
5 videos2 programming assignments
This module further explores the Actor model by showing useful patterns used to create complex and resilient programs
What's included
3 videos2 programming assignments
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
What's included
6 videos
Now that you are familiar with the Actor model, this module shows how to leverage Scala's powerful type system to write programs with more confidence by using typed actor descriptions
What's included
6 videos2 programming assignments
This module introduces the concept of data streams and the basic semantics of stream processing before showing how the Akka framework can be used to tackle common challenges in this domain
What's included
4 videos2 programming assignments
This final module elaborates on more complex and powerful patterns in stream processing as well as how to the integrate the actor model to create custom nodes of data processing
What's included
4 videos2 programming assignments
Instructors
![Roland Kuhn](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-instructor-photos.s3.amazonaws.com/38/712b2405e2ad64fc6a3046dc3605d8/_RK_photo.jpg?auto=format%2Ccompress&dpr=1&w=75&h=75&fit=crop)
![Konrad Malawski](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-instructor-photos.s3.amazonaws.com/73/9f94176d1e41c1bf05e55072b566b3/ktoso-lambda-look-500.jpg?auto=format%2Ccompress&dpr=1&w=75&h=75&fit=crop)
![Martin Odersky](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera-instructor-photos.s3.amazonaws.com/4f/7d9bfc74644bd2d6f945b21442a620/martinodersky.jpeg?auto=format%2Ccompress&dpr=1&w=75&h=75&fit=crop)
Offered by
Why people choose Coursera for their career
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Felipe_Moitta.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Jennifer_John.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Larry_Tao_Wang_1.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
![](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/growth_testimonials/passionate_learner/Chaitanya_Anand.png?auto=format%2Ccompress&dpr=1&w=64&h=64&fit=crop)
Learner reviews
31 reviews
- 5 stars
48.38%
- 4 stars
22.58%
- 3 stars
12.90%
- 2 stars
6.45%
- 1 star
9.67%
Showing 3 of 31
Reviewed on Feb 4, 2024
Pretty hard, especially week 5. Only do the assignments if you are up to a challenge.
Reviewed on Feb 6, 2025
Good course, quite difficult but rewarding. I think textual descriptions for some of the exercises could be improved a little bit(kvstore).
Recommended if you're interested in Computer Science
The Hong Kong University of Science and Technology
University of California, Santa Cruz
Northeastern University
![Placeholder](https://d3njjcbhbojbot.cloudfront.net/api/utilities/v1/imageproxy/https://coursera_assets.s3.amazonaws.com/images/7a1c0e2e779c1ff27cae62480adfe003.png?auto=format%2Ccompress&dpr=2&blur=200&px=8&max-w=120)
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy