Bootstrap

Recover full stream state from snapshot plus retained updates in a single request.

Returns the stream's latest snapshot (if any) plus all retained updates after the snapshot offset, packed as a multipart/mixed response. This is the recommended way to initialize a client that needs the complete current state of a stream.

bucketpathstringrequired

Bucket ID.

streampathstringrequired

Stream ID within the bucket.

Bootstrap does not accept ?live=sse. Combining the multipart body with an SSE event stream is rejected with 400. To go live after bootstrap, finish the multipart response, then open a separate GET /{bucket}/{stream}?offset=<Stream-Next-Offset>&live=sse.

Response

StatusMeaning
200Bootstrap response with snapshot and updates.
400Invalid query parameters (including live=sse).
404Stream not found or expired.
410Requested offset has been trimmed.

Response headers include:

HeaderDescription
Content-Typemultipart/mixed; boundary=...
Stream-Next-OffsetThe offset after the last included update.
Stream-Snapshot-OffsetThe snapshot offset (or none if no snapshot exists).
Stream-Up-To-Datetrue if the response includes all data up to the tail.
Stream-ClosedPresent and true if the stream is closed and fully caught up.

Response body

The body is a multipart/mixed message:

  1. Snapshot part

    The first part is the snapshot blob (or an empty part if no snapshot exists).

  2. Update parts

    Subsequent parts are individual update messages appended after the snapshot offset. For JSON streams, each update is a separate application/json part.

curl 'http://127.0.0.1:4437/demo/hello/bootstrap'

After bootstrapping, switch to SSE reads with live=sse starting from the Stream-Next-Offset to receive real-time updates.

See bootstrap and snapshots for the conceptual model.