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
@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
@spec ensure_blob( ExStorageService.Context.t(), ExStorageService.BlobStore.StagedBlob.t() | ExStorageService.BlobStore.ReadyBlob.t() | ExStorageService.BlobStore.Source.t() | map(), keyword() ) :: {:ok, evidence()} | {:error, term()}