gen_persistence: persist the state of your processes

Often we want to persist the state of our Erlang processes so that it can be recovered after a crash, started/restarted on demand (via a supervisor or manually) or migrated in the cluster via a storage provider. To solve it Benoit has created a new small opensource library.

With gen_perstistence all events coming to your modules are stored to the disk and replayed on restart but it’s also possible to store a snapshot of the state to reduce the recovery time. An implementation of gen_statem and gen_server with persistence is also provided.


This talk will describe the usage of gen_persistence and how to create custom plugins to store the events and the snapshots.


Any developer interested in discovering an intuitive way to build a stateful middle-tier using Erlang.

Upcoming conferences

Start booking your calendar with more Code Sync conferences happening across the globe. We will be slowly releasing more dates, in the meantime here is what we’ve planned already:

All conferences