sydepsystem design atlas

Claim Check

Pass a reference through the message bus, keep the payload out of it.

IntermediateMessagingData
ProducerComputePayload StoreStorageClaim Check QueueMessagingConsumerCompute

Large payloads are stored in object storage; only a small reference (the claim check) travels through the queue. Consumers fetch the full payload using the reference, keeping the message bus fast and within its size limits.

When to use it

  • Message payloads are large (files, images, big JSON blobs) and would bloat the broker
  • Only a subset of consumers actually need the full payload

Trade-offs

  • Adds a round trip to object storage and its own availability dependency
  • Payload and reference can drift out of sync if lifecycle rules delete one but not the other

Components used

Serverless FunctionObject StorageMessage QueueContainer Service

How it works

  • Large payloads are written to object storage, and only a reference — the claim check — travels through the message broker.
  • Consumers receive the small message and fetch the payload from storage when they actually need it.
  • The broker stays fast and cheap because it only ever moves identifiers.

Used in the wild

  • Pipelines moving images, video or large documents between processing stages.
  • Working around broker message size limits, which are frequently a few hundred kilobytes.
  • Reducing broker storage costs when payloads are large but rarely all consumed.

Good to know

  • Named after a coat check: you hand over the bulky item and carry a small ticket.
  • Lifecycle now spans two systems. Deleting the message does not delete the blob, and expiring the blob too early leaves consumers holding a reference to nothing.