Despite the large adoption of event sourcing in microservices and distributed systems in general, most of the time it is applied only to implement a log of the changes to a particular (and sometimes isolated) part of the system. In this talk, we'll explore the true potential of this pattern and see how far we can take advantage of events in our applications.
Our case study will be a real-world microservice, based on Akka Typed, implementing a distributed and reactive data pipeline. We’ll start by looking at how event-sourcing, when used along with a distributed storage layer, can be used to restore the state of a cluster of devices.
We'll then see how, just by taking advantage of event-sourced actors, we can easily implement features that would otherwise require a lot of code and tests to get it right. In particular, we'll focus on how to monitor the workload of a distributed microservice and how to implement resumable streams on data.