Programming Reactive Systems (Scala 2 version) (Coursera)

Programming Reactive Systems (Scala 2 version) (Coursera)

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.

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

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

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, asynchronous programming with Futures.

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

Learn CSS Flexbox (Coursera) Coursera
Scrimba

Learn CSS Flexbox (Coursera)

Mastering CSS Flexbox: Unlock the Power of Flexible Web Layouts. Discover the indispensable art of CSS Flexbox and elevate your web development prowess to new heights. In this comprehensive course, you'll gain proficiency in harnessing the unparalleled capabilities of Flexbox, revolutionizing the way you construct websites.

Nov 23rd 2026
1 Week
Introducción a UML (Coursera) Coursera
Universidad de los Andes

Introducción a UML (Coursera)

Bienvenidos a este curso de introducción al Lenguaje de Modelado Unificado, o UML por su sigla en inglés. Este curso surge como respuesta a la necesidad de los ingenieros de software de desarrollar la habilidad de abstraer y representar en un modelo problemas o soluciones. Esta habilidad es especialmente importante en el mundo del software donde las tecnologías son tan cambiantes. Un modelo te provee una forma de comunicar y validar un entendimiento, independiente de la tecnología en la que construirás una solución.

Nov 23rd 2026
4 Weeks
C++程序设计 (Coursera) Coursera
Peking University

C++程序设计 (Coursera)

讲授C++语言中和面向对象有关的概念和语法,如类和对象、运算符重载、继承和多态、类模板和算法模板、标准模板库等。目标是使得学生能够用C++语言,以面向对象的方法编写可维护性、可扩充性好的,较大规模的程序,初步领会面向对象程序设计方法的优势所在。

Nov 16th 2026
5-12 Weeks
Videojuegos: ¿de qué hablamos? (Coursera) Coursera
Universitat Autònoma de Barcelona

Videojuegos: ¿de qué hablamos? (Coursera)

Probablemente, todos hemos jugado a algún videojuego, pero ¿qué hay detrás de él? Podemos decir que - con independencia del videojuego - hay un árduo trabajo multidisciplinar que incluye desde aspectos de diseño hasta la programación como tal del videojuego. Este curso pretende ser un curso introductorio que muestre qué aspectos hay que considerar en el videojuego, y que permita con posterioridad abordar individualmente los temas que se consideran nucleares: diseño, arte, motor del videojuego y 'game play'.

Nov 16th 2026
5-12 Weeks
Open Source Programming - Master's (Coursera) Coursera
Illinois Tech

Open Source Programming - Master's (Coursera)

Contemporary open-source programming languages and frameworks are presented in this course. Students will consider design and development topics in system, graphical user interface, network, and web programming. Dynamic scripting languages are covered using object-oriented, concurrent, and functional programming paradigms. Concepts gained throughout the course are reinforced with numerous exercises which will culminate in an open-source programming project.

Nov 23rd 2026
5-12 Weeks
Google Cloud Product Fundamentals en Español (Coursera) Coursera
Google Cloud

Google Cloud Product Fundamentals en Español (Coursera)

Este curso, que es una continuación de Business Transformation with Google Cloud, le permitirá conocer la perspectiva tecnológica de la transformación de una organización. Para ser más específicos, explicaremos cómo la tecnología de Google Cloud puede transformar digitalmente una organización en los siguientes aspectos: modernizar la infraestructura de TI; mejorar la forma en que los equipos desarrollan las aplicaciones que utiliza la empresa; saber cómo aprovechar el aprendizaje automático y la inteligencia artificial para generar más valor; advertir el rol fundamental de las herramientas de productividad basadas en la nube, como G Suite, para cumplir con el trabajo, y comprender los desafíos y las oportunidades de la administración de costos que trae aparejados una infraestructura de TI cambiante basada en la nube.

Nov 23rd 2026
5-12 Weeks
The Unix Workbench (Coursera) Coursera
Johns Hopkins University

The Unix Workbench (Coursera)

Unix forms a foundation that is often very helpful for accomplishing other goals you might have for you and your computer, whether that goal is running a business, writing a book, curing disease, or creating the next great app. The means to these goals are sometimes carried out by writing software. Software can’t be mined out of the ground, nor can software seeds be planted in spring to harvest by autumn. Software isn’t produced in factories on an assembly line. Software is a hand-made, often bespoke good. If a software developer is an artisan, then Unix is their workbench.

Nov 23rd 2026
4 Weeks
Programming Mobile Applications for Android Handheld Systems: Part 2 (Coursera) Coursera
University of Maryland, College Park

Programming Mobile Applications for Android Handheld Systems: Part 2 (Coursera)

This course introduces you to the design and implementation of Android applications for mobile devices. You will build upon concepts from the prior course, including handling notifications, using multimedia and graphics and incorporating touch and gestures into your apps.

Nov 23rd 2026
5-12 Weeks
Introduction to Containers w/ Docker, Kubernetes & OpenShift (Coursera) Coursera
IBM

Introduction to Containers w/ Docker, Kubernetes & OpenShift (Coursera)

Throughout the course you will apply what you learn with hands-on labs. From getting started with Docker, to orchestration and scaling with Kubernetes, and simplifying deployments with OpenShift. The labs are performed using your web browser on IBM Cloud and Skills Network Labs environments, that are made available to you at no charge. in the project at the end of the course you will build a container image and deploy and scale it on Cloud using OpenShift. This course is of interest to anyone who wants to be a cloud practitioner - cloud developers, cloud architects, cloud system engineers, devops engineers, cloud networking specialists and many other roles.

Nov 23rd 2026
5-12 Weeks
Applied Calculus with Python (Coursera) Coursera
Johns Hopkins University

Applied Calculus with Python (Coursera)

This course is designed for the Python programmer who wants to develop the foundations of Calculus to help solve challenging problems as well as the student of mathematics looking to learn the theory and numerical techniques of applied calculus implemented in Python. By the end of this course, you will have learned how to apply essential calculus concepts to develop robust Python applications that solve a variety of real-world challenges.

Nov 23rd 2026
5-12 Weeks
Open Source Programming - Bachelor's (Coursera) Coursera
Illinois Tech

Open Source Programming - Bachelor's (Coursera)

Contemporary open-source programming languages and frameworks are presented in this course. Students will consider design and development topics in system, graphical user interface, network, and web programming. Dynamic scripting languages are covered using object-oriented, concurrent, and functional programming paradigms. Concepts gained throughout the course are reinforced with numerous exercises which will culminate in an open-source programming project.

Nov 23rd 2026
5-12 Weeks
Algorithms, Part I (Coursera) Coursera
Princeton University

Algorithms, Part I (Coursera)

This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.

Nov 16th 2026
5-12 Weeks