Deliver a participant dispatch envelope (outbound)
Aerandil sends this request to a participant runner’s configured HTTPS endpoint when a participant_dispatch_attempt row is claimed. The request body is a CloudEvents JSON-format envelope with type = aerandil.participant_dispatch.dispatched; the data.dispatch_kind and dataschema URI identify the specific work payload.
Signature. The envelope carries data.signature, an Ed25519 detached signature over the RFC 8785 canonical envelope with data.signature elided. Receivers resolve kid against the coordinator signing key catalogue and reject missing, expired, or unverifiable envelopes.
Receiver contract. Return any 2xx to accept transport custody. 5xx, 408, 425, 429, and transport failures are retried under the dispatcher retry policy; other non-2xx statuses are terminal for that dispatch row.
Idempotency. Deduplicate by the CloudEvents id plus data.idempotency.idempotency_key; retries reuse the same logical envelope id while stamping a fresh time.
Request Bodyrequired
Section titled “Request Bodyrequired”Coordinator-signed dispatch envelope (proposal 0022 §7.1).
Envelope with type = aerandil.participant_dispatch.dispatched (§7.1). Body of the outbound webhooks.aerandil_participant_dispatch request. The data.dispatch_kind and dataschema URI discriminate the concrete work payload. The v1 dispatcher emits the stable handoff fields below and may add richer scope fields as payload assembly grows.
object
Aerandil-specific payload (§5.5). Shape varies by type; the schema at dataschema is the contract.
object
URL of the schema describing data. v1 URLs are https://schema.aerandil.example/0022/...; receivers match on this to dispatch parsing.
UUID v7 per §5.1; reused across retries of the same logical dispatch.
Producer URI; e.g. aerandil://coordinator/tenant=T-1/program=... or aerandil://participant/....
CloudEvents specversion — pinned at 1.0.
Composite key (e.g. <run_id>/<participation_id>/<slot>).
RFC 3339; checked against the ±5-minute replay window.
Reverse-DNS message kind.
object
object
object
object
object
Ed25519 detached signature over the canonical bytes of the surrounding envelope (RFC 8785 JCS with the signature field elided). Proposal 0022 §8.2.
object
Signature algorithm — v1 supports ed25519 only.
Key identifier. Resolves against federated_participation.runner_signing_key_ref for participant-signed envelopes, or the coordinator signing config for coordinator-signed.
Base64 (RFC 4648 §4) detached signature bytes.
Stable schema URI for data; normally <dataschema_base>/dispatch/{dispatch_kind}.v1.json.
Responses
Section titled “Responses”Receiver accepted the dispatch. Any 2xx status counts as success; Aerandil reads only the status code.
default
Section titled “default”Non-2xx response. Retryable statuses follow proposal 0022 §11.2 (5xx, 408, 425, 429); all other statuses are terminal.