Streams

Last updated 29 October 2026

View .md

A durable log at an HTTPS URL: programs append to it exactly once, and any number of readers read it from any offset or tail it live, with plain HTTP.

What people build with it

  • An agent’s transcript or event log

    One stream per run, every step appended once, replayed from any offset.

  • Live progress

    A job appends, and a page or a CLI tails it (see Job progress to a web UI).

  • Fan-out to many readers

    Each reader keeps its own offset, and reads are free.

  • A public feed

    Anyone with its URL reads it without a token (see Public streams).

A good fit, and not

A good fit:

  • History that only grows, read by one reader or many.
  • Writers that retry: each append applies once (see Append).
  • Any language or runtime with an HTTP client.

Not a good fit:

  • A work queue with acknowledgements, leases or redelivery.
  • Data you update or query in place: use a database.
  • Removing single messages (see Retention).

Compared with a message queue and object storage

Tonbo StreamsA message queueObject storage
Who gets a messageEvery reader, from its own offsetOne consumer, which acknowledges itWhoever fetches the object
A writer’s retryApplies onceOften delivered twiceWrites the object again
HistoryKept until you trim or delete itUsually gone once acknowledgedKept until you delete it
You pay forWrites and storage; reads are freeUsually each operationRequests, storage and egress

For state you query and change in place, use a database instead.

What it costs

Every account gets $5 of usage free each month. After that you pay for writes and storage, and reads are free. See Pricing.

Where it runs

Anywhere with HTTPS: a stream is a URL, and every operation is a plain HTTP request with an API key, so there is no SDK to install. A web page gets a short-lived token from your server instead of a key (see A token for a web page).

Get started

Next steps