# `Finitomata.Persistency.Persistable`
[🔗](https://github.com/am-kantox/finitomata/blob/v0.35.0/lib/finitomata/persistency/persistable.ex#L1)

The protocol to be implemented for custom data to be used in pair with
  `Finitomata.Persistency.Protocol` persistency adapter.

For that combination, one should implement the protocol for that particular
  struct _and_ specify `Finitomata.Persistency.Protocol` as a `persistency`
  in a call to `use Finitomata`.

```elixir
use Finitomata, …, persistency: Finitomata.Persistency.Protocol
```

# `t`

```elixir
@type t() :: term()
```

All the types that implement this protocol.

# `load`

Loads the entity from some external storage with opts

# `store`

Persists the transitioned entity to some external storage

# `store_error`

Persists the error happened while an attempt to transition the entity

---

*Consult [api-reference.md](api-reference.md) for complete listing*
