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

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!

Jul 27th 2026
5-12 Weeks
Finding Mutations in DNA and Proteins (Bioinformatics VI) (Coursera) Coursera
University of California, San Diego

Finding Mutations in DNA and Proteins (Bioinformatics VI) (Coursera)

In previous courses in the Specialization, we have discussed how to sequence and compare genomes. This course will cover advanced topics in finding mutations lurking within DNA and proteins. In the first half of the course, we would like to ask how an individual's genome differs from the "reference genome" of the species.

Aug 17th 2026
5-12 Weeks
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
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
Developing Cloud Apps with Node.js and React (Coursera) Coursera
IBM

Developing Cloud Apps with Node.js and React (Coursera)

In this course, you will focus on server-side JavaScript and frameworks. You will discover ways to make development faster and easier in web browsers and embedded systems. You may ask, what is the relevance of developing cloud applications with Node.js and React? In 2020, the Stack Overflow survey of developers reported that 51.4% of respondents are using Node.js, making it number one in the category of Other Frameworks, Libraries, and Tools. In the Most Loved, Dreaded, and Wanted category for Other Frameworks, Libraries, and Tools, Node.js is in the top ten at 66.8%. In the Web Frameworks category, React is number two at 35.9% in usage and 66.9% in the Most Loved, Dreaded, and Wanted category for Web Frameworks.

Jun 17th 2024
5-12 Weeks
Parallel Programming in Java (Coursera) Coursera
Rice University

Parallel Programming in Java (Coursera)

This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism.

Aug 3rd 2026
4 Weeks
Web Application Development: Basic Concepts (Coursera) Coursera
University of New Mexico

Web Application Development: Basic Concepts (Coursera)

This is the first course in a Coursera Specialization track involving Web Application Architectures. This course will give you the basic background, terminology and fundamental concepts that you need to understand in order to build modern full stack web applications. A full stack web developer is familiar with each "layer" of the software technologies involved in a web application, including data modeling and database technologies, the web server environment and middleware components, network protocols, the user interface and basic visual design and user interaction concepts.

Aug 17th 2026
5-12 Weeks
计算机辅助翻译原理与实践 Principles and Practice of Computer-Aided Translation (Coursera) Coursera
Peking University

计算机辅助翻译原理与实践 Principles and Practice of Computer-Aided Translation (Coursera)

讲授计算机辅助翻译技术的基本概念,及多种辅助翻译工具的原理和使用方法,锻炼学生在技术环境下从事翻译工作等其他各类语言服务工作的能力,并帮助学生理解信息化时代的语言服务工作。 This course introduces the basic concepts of computer-aided translation technology and helps students learn to use computer-aided translation tools.

Aug 17th 2026
13-24 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.

Aug 3rd 2026
4 Weeks
Develop and Deploy Windows Applications on Google Cloud Platform (Coursera) Coursera
Google Cloud

Develop and Deploy Windows Applications on Google Cloud Platform (Coursera)

Learn to deploy and run Microsoft Windows® applications on Google Cloud Platform (GCP). Through lectures and hands-on labs, learn how to configure and run Microsoft Windows and Microsoft SQL Server in Google Compute Engine. You will also learn how to develop and deploy ASP.NET applications and deploy them to Google Compute Engine, Google App Engine, and Google Container Engine.

Mar 18th 2024
1 Week
Server side JavaScript with Node.js (Coursera) Coursera
NIIT StackRoute

Server side JavaScript with Node.js (Coursera)

Have you ever wondered how you are able to do net banking or book a ticket online? Which technology is adopted for applications used in different businesses? Backend technology acts as a backbone to every web application. It typically includes all services, data interfaces and their core business logic. This course will introduce you to the Node.js environment and help you design and develop backend or server-side of the application. It also provides you with hands on coding exercises and will enable you to build JavaScript programs and test and execute them in the Node.js environment.

Jul 27th 2026
5-12 Weeks