Coordinates fenced cache-aside computation leases.
Keys are routed through a fixed PartitionSupervisor, so unrelated cache
misses do not serialize through one process. Each partition coalesces local
waiters per key and monitors both the compute owner and any shared remote
poller. Failures are replicated as short-lived opaque outcomes so waiters on
other nodes observe them without issuing writes while polling.
Summary
Types
Functions
@spec child_spec(keyword()) :: Supervisor.child_spec()
@spec fetch_or_compute(binary(), pos_integer(), binary()) :: fetch_result()
@spec fetch_or_compute(FerricStore.Instance.t(), binary(), pos_integer(), binary()) :: fetch_result()
@spec fetch_or_compute_error(binary(), compute_token(), binary()) :: :ok | {:error, term()}
@spec fetch_or_compute_error( FerricStore.Instance.t(), binary(), compute_token(), binary() ) :: :ok | {:error, term()}
@spec fetch_or_compute_result(binary(), binary(), compute_token(), non_neg_integer()) :: :ok | {:error, term()}
@spec fetch_or_compute_result( FerricStore.Instance.t(), binary(), binary(), compute_token(), non_neg_integer() ) :: :ok | {:error, term()}
@spec start_link(keyword()) :: Supervisor.on_start()