ExStorageService.Cluster.WriteCoordinator (ex_storage_service v0.6.3)

Copy Markdown View Source

Establishes durable blob quorum before object metadata becomes visible.

Placement and acknowledgement validation are pure request-time decisions. Transfers run under a bounded Task.Supervisor; this module deliberately owns no process or mutable coordination state.

Summary

Types

evidence()

@type evidence() :: %{
  descriptor: ExStorageService.Cluster.BlobDescriptor.t(),
  placement: [map()],
  acknowledgements: [ExStorageService.Cluster.ReplicaAck.t()],
  missing_node_ids: [String.t()],
  configured_write_quorum: pos_integer(),
  required_write_quorum: pos_integer(),
  achieved_replica_count: pos_integer(),
  durability: :strict | :degraded,
  ready_blob: ExStorageService.BlobStore.ReadyBlob.t() | map() | nil
}

Functions

ensure_blob(context, source, opts \\ [])