Actors generally need to persist their internal state so that they can recover it in case an Actor is started or restarted, in case of node crashes, or migrated across nodes in cluster. State persistence is also necessary to build complex Actor workflows that transform and enrich input data and generate resultant data that helps make decisions to carry out further operations.
For example, for an automobile system, a fuel Actor may persist the fuel consumption in its state to later calculate the mileage of the vehicle, which may later help decide whether the vehicle requires a maintenance check.
The Actor base class contains the read only StateManager property that can be used to operate with state data. The following lines of code, can save and retrieve state data where the argument cancellationToken is an object of type CancellationToken:
// Save state data...