• Length:
    9 Weeks
  • Effort:
    5–7 hours per week
  • Price:

    FREE
    Add a Verified Certificate for $50 USD

  • Institution
  • Subject:
  • Level:
    Intermediate
  • Language:
    English
  • Video Transcript:
    English

Prerequisites

You should have at least one year programming experience, preferably in Scala or a functional language. Ideally, you have followed the Functional Programming Principles in Scala course. You should have some familiarity using the command line.

About this course

Skip About this course
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.

What you'll learn

Skip What you'll learn
  • 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
The course starts by showing how to abstract over event handlers. Then, it explains how to write concurrent systems by using the Actor programming model, how to make these systems resilient to failures, and how to scale out to distributed actors. Last, the course shows how to manipulate, in a resource efficient way, intermittent and potentially infinite streams of data.

During this course we’ll go through:

  • reminder on functional programming in Scala (case classes, higher-order functions, standard collections),
  • asynchronous programming with Future,
  • actor programming model,
  • introduction to Akka actors,
  • failure handling with actors using supervision,
  • actor lifecycle monitoring and Receptionist pattern,
  • persistent actor state,
  • distributing actors in a cluster,
  • eventual consistency,
  • actor composition,
  • scaling actor systems,
  • protocols in Akka typed,
  • Akka typed adapters,
  • challenges of stream processing,
  • the Reactive Streams specification,
  • introduction to Akka Streams,
  • streams failure handling and processing rate
  • streaming protocols and stream composition,
  • stateful operations and materialized values,
  • splitting and merging streams,
  • integrating streams with typed actors.

Meet your instructors

Konrad Malawski
M
ex Akka team
Martin Odersky
Dr
École polytechnique fédérale de Lausanne
Julien Richard-Foy
Dr
École polytechnique fédérale de Lausanne

Pursue a Verified Certificate to highlight the knowledge and skills you gain $50.00

View a PDF of a sample edX certificate
  • Official and Verified

    Receive an instructor-signed certificate with the institution's logo to verify your achievement and increase your job prospects

  • Easily Shareable

    Add the certificate to your CV or resume, or post it directly on LinkedIn

  • Proven Motivator

    Give yourself an additional incentive to complete the course

  • Support our Mission

    EdX, a non-profit, relies on verified certificates to help fund free education for everyone globally