lib/actors/actor/state_manager_behaviour.ex
defmodule Actors.Actor.StateManager.Behaviour do
@callback is_new?(String.t(), any()) :: {:error, term()} | boolean()
@callback load(String.t()) :: {:ok, term()} | {:not_found, %{}} | {:error, term()}
@callback save(String.t(), term()) ::
{:ok, term(), String.t()}
| {:error, term(), term(), term()}
| {:error, term(), term()}
@callback save_async(String.t(), term(), integer()) ::
{:ok, term(), String.t()}
| {:error, term(), term(), term()}
| {:error, term(), term()}
end