On-demand (pull)
A recipient pulls a specific record when it is needed, and verifies it at read time.
A recipient pulls a specific record when it is needed, and verifies it at read time.
Diagram
This diagram is free to copy into your own presentation. Nothing is pushed: the verifier pulls a specific record when it is needed and checks it at the moment of use.
When to use, when not to use
When to use. Use on-demand (pull) when the recipient should fetch a specific record when it is needed rather than receive a push, and should verify it at read time. Admission is by authorisation: the holder authorises a party to pull, and delivery happens only when the recipient asks. This is the right pattern when reads are occasional and specific, when the recipient does not want a continuous stream, and when verification belongs at the moment of use.
When not to use. If the producer needs to deliver a record proactively to a known set of recipients, use one-to-many instead: on-demand is mode: pull, whereas one-to-many is mode: push. If the exchange is a bounded question expecting a bounded answer rather than the retrieval of a full record, use request-response.
Example configuration (YAML)
pattern: on-demand
protocol_version: "0.1"
exchange:
topology: point-to-point
participants:
- public-body
- verifier
admission: authorised
delivery:
mode: pull
ordering: none
payload:
encryption: field-level
disclosure: selective
audit:
anchor: public-audit-layer
proof: per-recordUse case
This template fits a verifier that pulls and checks a specific record at the moment of need, illustrated by the content authenticity protocol, where a party retrieves and verifies a single record when it has to act on it rather than subscribing to a stream. It configures the base data-sharing protocol.