- Level Professional
- المدة 50 ساعات hours
- الطبع بواسطة École Polytechnique Fédérale de Lausanne
-
Offered by
عن
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الوحدات
Welcome
1
Videos
- Introduction to Programming Reactive Systems
1
Readings
- Course structure
Practical information
- Example Assignment
8
Readings
- Working on Assignments
- Tools Setup (Please read)
- IntelliJ IDEA Tutorial
- SBT tutorial and Submission of Assignments (Please read)
- Learning Resources
- Scala Style Guide
- Scala Tutorial
- Cheat Sheet
Scala Recap
2
Videos
- Lecture 1.2-Functions and Pattern Matching
- Lecture 1.3-Collections
Asynchronous Programming
2
Videos
- Lecture 1.4-Asynchronous Programming
- Lecture 1.5-Futures
Programming with Futures
- Programming with Futures (audit track)
- Programming with Futures (verified track)
The Actor Model
5
Videos
- Lecture 2.1-Introduction: why actors?
- Lecture 2.2-The Actor Model
- Lecture 2.3-Message Processing Semantics
- Lecture 2.4-Designing Actor Systems
- Lecture 2.5-Testing Actor Systems
Binary Trees
- Binary Trees (verified track)
- Binary Trees (audit track)
Handling Failure and State
3
Videos
- Lecture 3.1-Failure Handling With Actors
- Lecture 3.2-Lifecycle Monitoring and The Error Kernel
- Lecture 3.3-Persistent Actor State
Replicated Key-Value Store
- Replicated Key-Value Store (verified track)
- Replicated Key-Value Store (audit track)
Distributed Computing
6
Videos
- Lecture 4.1-Actors Are Distributed (part 1)
- Lecture 4.2-Actors Are Distributed (part 2)
- Lecture 4.3-Eventual Consistency
- Lecture 4.4-Actor Composition
- Lecture 4.5-Scalability
- Lecture 4.6-Responsiveness
Typed Actors
6
Videos
- Lecture 5.1-Introduction to Protocols
- Lecture 5.2-Protocols in Akka Typed
- Lecture 5.3-Testing Akka Typed Behaviors
- Lecture 5.4-Akka Typed Facilities
- Lecture 5.5-Akka Typed Persistence
- Lecture 5.6-Supervision revisited
Transactor
- Transactor (verified track)
- Transactor (audit track)
Stream Processing
4
Videos
- Lecture 6.1-Stream Processing
- Lecture 6.2-Introducing Reactive Streams Semantics
- Lecture 6.3-Akka Streams
- Lecture 6.4-Failure handling and processing rate
Streaming assignment
- Streaming assignment (verified track)
- Streaming assignment (audit track)
Advanced Stream Processing
4
Videos
- Lecture 7.1-Streaming Protocols & Stream Composition
- Lecture 7.2-Stateful operations and materialized values
- Lecture 7.3-Fan-in and Fan-out operations
- Lecture 7.4-Integrating Streams with (Typed) Actors
Followers
- Reactive followers (verified track)
- Reactive followers (audit track)
Auto Summary
"Programming Reactive Systems" is an advanced course designed for IT and computer science professionals aiming to master the art of building scalable, resilient, and responsive systems. Rooted in the principles of the Reactive Manifesto, this course delves into the use of Scala and Akka to craft high-performing reactive systems. Guided by Coursera, the course focuses on several key areas, including: - Managing and manipulating asynchronous computations with Future values. - Developing concurrent reactive systems utilizing Akka's untyped and typed actors. - Creating robust systems that can withstand failures. - Building scalable systems that adapt to varying workloads. - Handling infinite and intermittent data streams using Akka Stream, ensuring non-blocking operations and effective back-pressure management. With a comprehensive 3000-hour curriculum, this professional-level course offers a deep dive into reactive programming techniques, perfect for developers seeking to enhance their skills in creating efficient and resilient software systems. Subscription options are available starting from the Starter tier, making it accessible for those ready to elevate their technical prowess in reactive systems.

Roland Kuhn

Konrad Malawski

Martin Odersky

Julien Richard-Foy