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 API,
- 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.