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.
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
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.
What's included
5 videos9 readings3 programming assignments
Show info about module content
5 videos•Total 69 minutes
Introduction to Programming Reactive Systems•11 minutes
Lecture 1.2-Functions and Pattern Matching•20 minutes
Lecture 1.3-Collections•13 minutes
Lecture 1.4-Asynchronous Programming•11 minutes
Lecture 1.5-Futures•14 minutes
9 readings•Total 85 minutes
Course structure•10 minutes
Working on Assignments•5 minutes
Tools Setup (Please read)•10 minutes
IntelliJ IDEA Tutorial•10 minutes
SBT tutorial and Submission of Assignments (Please read)•10 minutes
Learning Resources•10 minutes
Scala Style Guide•10 minutes
Scala Tutorial•10 minutes
Cheat Sheet•10 minutes
3 programming assignments•Total 540 minutes
Programming with Futures (verified track)•180 minutes
Example Assignment•180 minutes
Programming with Futures (audit track)•180 minutes
The Actor Model
Module 2•8 hours to complete
Module details
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
This module further explores the Actor model by showing useful patterns used to create complex and resilient programs
What's included
3 videos2 programming assignments
Show info about module content
3 videos•Total 72 minutes
Lecture 3.1-Failure Handling With Actors•23 minutes
Lecture 3.2-Lifecycle Monitoring and The Error Kernel•24 minutes
Lecture 3.3-Persistent Actor State•25 minutes
2 programming assignments•Total 360 minutes
Replicated Key-Value Store (verified track)•180 minutes
Replicated Key-Value Store (audit track)•180 minutes
Distributed Computing
Module 4•2 hours to complete
Module details
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
What's included
6 videos
Show info about module content
6 videos•Total 119 minutes
Lecture 4.1-Actors Are Distributed (part 1)•37 minutes
Lecture 4.2-Actors Are Distributed (part 2)•18 minutes
Lecture 4.3-Eventual Consistency•16 minutes
Lecture 4.4-Actor Composition•20 minutes
Lecture 4.5-Scalability•17 minutes
Lecture 4.6-Responsiveness•11 minutes
Typed Actors
Module 5•7 hours to complete
Module details
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
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
Lecture 6.4-Failure handling and processing rate•18 minutes
2 programming assignments•Total 360 minutes
Streaming assignment (verified track)•180 minutes
Streaming assignment (audit track)•180 minutes
Advanced Stream Processing
Module 7•7 hours to complete
Module details
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
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I purchase the Certificate?
When you purchase a Certificate you get access to all course materials, including graded assignments. Upon completing the course, your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.