Programming Reactive Systems (Coursera)

Programming Reactive Systems (Coursera)

Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems. The basic building-block of such systems is event handlers. This course teaches how to implement reactive systems in Scala by using high-level abstractions based on event-handlers. You will learn how to: use, transform and sequence asynchronous computations using Future values; write concurrent systems based on Actors, 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; understand how back-pressure controls flows of data

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

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
  • What you will learn from this course

Syllabus

WEEK 1
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

WEEK 2
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

WEEK 3
Handling Failure and State
This module further explores the Actor model by showing useful patterns used to create complex and resilient programs

WEEK 4
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

WEEK 5
Typed Actors
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

WEEK 6
Stream Processing
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

WEEK 7
Advanced Stream Processing
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

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

NodeJS Unleashed: Mastering Backend Development (Coursera) Coursera
EDUCBA

NodeJS Unleashed: Mastering Backend Development (Coursera)

Embark on a comprehensive Node.js development journey with this course. Starting with the fundamentals, you will establish a solid foundation by mastering Node.js installation and utilizing Visual Studio Code. Later, We will delve into advanced topics, such as asynchronous programming, error handling, CRUD operations, and OS module usage for system information retrieval.

Oct 26th 2026
4 Weeks
Cloud Computing Concepts: Part 2 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts: Part 2 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: Clouds, MapReduce, key-value stores, Classical precursors, Widely-used algorithms, Classical algorithms, Scalability, Trending areas, And more!

Nov 2nd 2026
5-12 Weeks
Asynchronous JavaScript Requests (Udacity) Udacity
Udacity

Asynchronous JavaScript Requests (Udacity)

Fetch Data Asynchronously. This course covers everything a developer needs to know to asynchronously send and receive data in their web applications. You'll dive into how asynchronous requests work by using the XHR object to create and send asynchronous requests for image and news article data. Then, you'll see how you can perform async requests more easily using third-party libraries and APIs like jQuery's Ajax and the Fetch API.

Self Paced
Self-Paced
Programming Reactive Systems (edX) EdX
École Polytechnique Fédérale de Lausanne,EPFLx

Programming Reactive Systems (edX)

Principles of Reactive Programming in Scala. Reactive programming is a set of techniques for implementing scalable, resilient and responsive systems. The basic building-block of such systems is event handlers. This course teaches how to implement reactive systems in Scala by using high-level abstractions based on event-handlers.

Self Paced
Self-Paced
Grand Central Dispatch (GCD) (Udacity) Udacity
Udacity

Grand Central Dispatch (GCD) (Udacity)

Perform Asynchronous Operations in iOS. Many times your apps need to run lengthy operations in the background, like downloading data, but you don't want these operations to interfere with your UI. Apple's GCD (long form: Grand Central Dispatch) framework allows you to create asynchronous apps for iOS, ensuring smooth a smooth user experience in situations like the one mentioned above.

Self Paced
Self-Paced
Learn Imba (Coursera) Coursera
Scrimba

Learn Imba (Coursera)

In this class, you'll dive into Imba, the programming language used to build scrimba.com. Imba, a compile-to-JavaScript language, packs a punch with nifty features for whipping up web apps, including built-in tags and styles. We'll cover the ABCs of Imba syntax and work on creating a Dopamine Box app. By the finish line, you'll be armed with the skills to construct your very own web app UI using Imba.

Nov 9th 2026
1 Week
Functional Program Design in Scala (Scala 2 version) (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Scala 2 version) (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types.

Nov 2nd 2026
5-12 Weeks
Distributed Programming in Java (Coursera) Coursera
Rice University

Distributed Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of Distributed Programming in the context of Java 8. Distributed programming enables developers to use multiple nodes in a data center to increase throughput and/or reduce latency of selected applications. By the end of this course, you will learn how to use popular distributed programming frameworks for Java programs, including Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), as well as different approaches to combine distribution with multithreading.

Oct 26th 2026
4 Weeks
Distributed Computing with Spark SQL (Coursera) Coursera
University of California, Davis

Distributed Computing with Spark SQL (Coursera)

This course is for students with SQL experience and now want to take the next step in gaining familiarity with distributed computing using Spark. Students will gain an understanding of when to use Spark and how Spark as an engine uniquely combines Data and AI technologies at scale. The four modules build on one another and by the end of the course the student will understand: Spark architecture, Spark DataFrame, optimizing reading/writing data, and how to build a machine learning model.

Jan 13th 2025
4 Weeks
Functional Program Design in Scala (Coursera) Coursera
École Polytechnique Fédérale de Lausanne

Functional Program Design in Scala (Coursera)

In this course you will learn how to apply the functional programming style in the design of larger applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world.

Oct 26th 2026
5-12 Weeks
Front-End JavaScript Frameworks: Angular (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Front-End JavaScript Frameworks: Angular (Coursera)

This course concentrates mainly on Javascript based front-end frameworks, and in particular the Angular framework (Currently Ver. 6.x). This course will use Typescript for developing Angular application. Typescript features will be introduced in the context of Angular as part of the exercises. You will also get an introduction to the use of Angular Material and Angular Flex-Layout for responsive UI design. You will be introduced to various aspects of Angular including components, directives and services. You will learn about data binding, Angular router and its use for developing single-page applications.

Mar 13th 2023
4 Weeks