We may earn an affiliate commission when you visit our partners.
Roland Kuhn, Konrad Malawski, Martin Odersky, and Julien Richard-Foy

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.

Read more

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.

What you'll learn

  • 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
This course is no longer available. Find a similar course by searching these:
reactive programming scala akka scala reactive programming akka

What's inside

Learning objectives

  • 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

Syllabus

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.
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Taught by instructors recognized for their work in the field of reactive programming
Develops advanced skills in reactive programming, including working with actors, streams, and back-pressure
Uses a project-based approach, providing hands-on experience in designing and implementing reactive systems
Covers the Reactive Streams API, which is widely used in industry for building scalable and resilient data processing pipelines
Requires a strong foundation in Scala programming
Assumes familiarity with asynchronous programming concepts

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Activities

Coming soon We're preparing activities for Programming Reactive Systems. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Programming Reactive Systems will develop knowledge and skills that may be useful to these careers:
Full-Stack Developer
Full Stack Developers design and implement both the front-end and back-end of software applications. This course may be useful for a Full Stack Developer because it teaches how to use high-level abstractions, such as actors, asynchronous computations, and reactive streams to implement reactive systems.
Software Developer
Software Developers design, develop, and implement software applications. This course may be useful for a Software Developer because it teaches how to use high-level abstractions, such as actors, asynchronous computations, and reactive streams to implement reactive systems.
Mobile Developer
Mobile Developers design and implement mobile applications. This course may be useful for a Mobile Developer because it teaches how to use asynchronous computations to implement responsive mobile applications.
Web Developer
Web Developers design and implement web applications. This course may be useful for a Web Developer because it teaches how to use asynchronous computations to implement responsive web applications.
DevOps Engineer
DevOps Engineers bridge the gap between development and operations teams. This course may be useful for a DevOps Engineer because it teaches how to design and implement resilient systems that can recover from failures.
Cloud Architect
Cloud Architects design and implement cloud-based solutions. This course may be useful for a Cloud Architect because it teaches how to design and implement distributed systems that can scale out to meet demand.
Big Data Engineer
Big Data Engineers design and build systems to process and analyze large datasets. This course may be useful for a Big Data Engineer because it teaches how to transform and consume infinite and intermittent streams of data in a non-blocking way.
Security Engineer
Security Engineers design and implement security systems. This course may be useful for a Security Engineer because it teaches how to design and implement systems that are resilient to attacks.
Systems Analyst
Systems Analysts analyze and design computer systems. This course may be useful for a Systems Analyst because it teaches how to design and implement systems that can scale out according to a varying workload.
Blockchain Developer
Blockchain Developers design and implement blockchain-based systems. This course may be useful for a Blockchain Developer because it teaches how to design and implement distributed systems that are resilient to failures.
Technical Writer
Technical Writers create documentation for software and other technical products. This course may be useful for a Technical Writer because it teaches how to write clear and concise documentation for reactive systems.
Software Architect
Software Architects design, develop, and implement the overall architecture of software systems. This course may be useful for a Software Architect because it teaches how to design and implement scalable, resilient, and responsive systems using asynchronous message-passing and event handlers.
Data Scientist
Data Scientists use data to solve business problems. This course may be useful for a Data Scientist because it teaches how to transform and consume infinite and intermittent streams of data in a non-blocking way.
Database Administrator
Database Administrators design and manage databases. This course may be useful for a Database Administrator because it teaches how to design and implement systems that are resilient to failures.
Data Engineer
Data Engineers design and build systems to collect, store, process, and analyze data so that key stakeholders can make data-driven decisions. This course may be useful for a Data Engineer because it teaches how to manipulate data from multiple sources and transform this data into actionable insights.

Reading list

We haven't picked any books for this reading list yet.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser