Introduction
Another useful module in the Akka ecosystem is Akka persistence. In some use cases, the state held by stateful actors is essential for your application to behave correctly. This kind of application cannot afford to lose that state. This could happen if the actor holding the state gets restarted; it is migrated to a different node in a cluster, or your JVM crashes. Akka persistence comes in handy with this task: it provides a mechanism to save the state and be able to recover it. Unlike traditional approaches, Akka persistence uses event sourcing to achieve this task. In the event sourcing world, we never store the actual state but an ordered set of events that happened in the actor to achieve that particular state. This way, we have a log of events that we can use to restore the state of an actor when required. Also, this technique provides a way of understanding how an actor reached its current state since we can analyze and replay each event. In this chapter, we will cover...