Durable FerricFlow schedules.
Schedules are stored as internal Flow records and fired by claiming due schedule records. That keeps scheduling distributed-safe without a second coordination path: only the shard leader can lease a due schedule, and every fire/reschedule is still guarded by Flow fencing tokens.
Summary
Types
@type schedule_id() :: binary()
Functions
@spec create(FerricStore.Instance.t(), schedule_id(), keyword()) :: {:ok, map()} | {:error, binary()}
@spec delete(FerricStore.Instance.t(), schedule_id(), keyword()) :: :ok | {:error, binary()}
@spec fire(FerricStore.Instance.t(), schedule_id(), keyword()) :: {:ok, map()} | {:error, binary()}
@spec fire_due( FerricStore.Instance.t(), keyword() ) :: {:ok, map()} | {:error, binary()}
@spec get(FerricStore.Instance.t(), schedule_id(), keyword()) :: {:ok, map() | nil} | {:error, binary()}
@spec list( FerricStore.Instance.t(), keyword() ) :: {:ok, [map()]} | {:error, binary()}
@spec pause(FerricStore.Instance.t(), schedule_id(), keyword()) :: {:ok, map()} | {:error, binary()}
@spec resume(FerricStore.Instance.t(), schedule_id(), keyword()) :: {:ok, map()} | {:error, binary()}