Bedrock.ControlPlane.Distributor.Placeholder.Server (bedrock v0.7.0)

View Source

GenServer implementation of the coverage placeholder.

Accepts the exact read-path call shapes real materializer servers handle — {:get, key_or_selector, version, opts} and {:get_range, start, end, version, opts} — and either forwards them to a live materializer (when one is known for the shard tag) or parks them in a deadline-bounded waiting list while signaling coverage demand to the distributor.

Deadline expiry is timer-driven: every mutation of the waiting list reschedules a Process.send_after/3 for the earliest deadline, and expired entries shed {:error, :unavailable} — retryable and routing-invalidating at the client, which is exactly right for a key whose coverage has not arrived.