Skip to main content

Data subscriptions

EngineersOperationsIntegrators
In one minute

Everything else in this section is about looking at data. A subscription reverses the direction: data comes to you, the moment it arrives, pushed over a standing connection rather than fetched on a schedule.

Delivery is millisecond-scale inside the platform, and that is not a performance brag, it is a category change: a whole set of use cases only exists below the latency of a polling loop.

Push, not poll

Most integrations ask on a schedule: every minute, every five, every fifteen. That puts a floor under how fresh anything downstream can be, on average half the polling interval, no matter how fast the data itself moves. It also scales badly, because every consumer asks again whether anything happened, mostly to hear that nothing did.

A subscription is a standing request. You say once what you want to hear about, and the platform delivers each new datapoint as it lands.

Polling asks. A subscription is told.Same data, same consumer. The difference is who initiates, and therefore how long new data waits.PollingDataHubYour systemaskaskaskarrives hereand waits for the next askLatency is set by the schedule: on average half the polling interval, however fresh the data is.SubscriptionDataHubYour systempushed the moment it arrivesLatency is set by delivery: milliseconds inside the platform, plus whatever your network adds.
The polling lane's latency has nothing to do with the data and everything to do with the schedule. The subscription lane has no schedule to wait for, which is the entire difference.

The two kinds

Live tailDurable subscription
ForWatching, a person or a chartDelivering, a system that must not miss data
Starts fromNowWhere you left off
If you disconnectYou miss what happened while awayNothing is lost: your position is held on the platform, and delivery resumes from it
AcknowledgementNone, it is a viewEach delivery is acknowledged, so unconfirmed data is redelivered
You meet it inInsights Live modeIntegrations built by your team

The distinction matters more than it looks. A wall display can use a live tail, because a missed minute during a reconnect is harmless. A downstream system mirroring data, or an agent acting on it, needs the durable kind, where a dropped connection is an inconvenience rather than a gap in the record.

Two properties of durable subscriptions are worth knowing even if you never build one:

  • Reconnects resume anywhere. Your position is held by the platform, not by the server you happened to be talking to, so a reconnect lands on any instance and carries on. No data loss, no special infrastructure.
  • Filtering happens platform-side. You subscribe to the series you care about, and only those are delivered. A subscriber is not flooded with everything and left to discard.

What millisecond delivery opens up

The honest way to see the value: list what is impossible at five-minute latency and routine below one second.

And the one worth flagging for later: closed-loop reactions, where a detected condition triggers an adjustment, are only responsible at subscription latency. That road runs through the guardrails on the agents page, but it starts here, with delivery fast enough to react to. The chain drawn end to end, a detection function firing, the event waking an agent, the agent's draft reaching a person, is on the functions page. Push delivery is also what moves a model from knowing what exists to knowing what is happening, level two of the twin maturity ladder.

Being honest about the milliseconds

"Millisecond latency" means delivery inside the platform: from a datapoint landing to it being on the wire to subscribers. Your own network path adds whatever it adds, and a subscriber that processes slowly adds more. The claim to design against is no schedule in the way, not a specific number on your WAN. Acknowledged redelivery also means a consumer can see the same datapoint twice after a reconnect, so build handlers idempotent.

The other side of the deal: a durable subscriber that stops consuming leaves the platform holding its undelivered data. Build consumers that keep up, and treat a subscription's credentials like any other integration's, a service account with the narrowest access that works.

Where to start

  • See it without writing code: open a series in Insights and go Live. That is a live tail over exactly this machinery.
  • Build against it: subscriptions are consumed through the API and SDKs, which is developer territory, and they are the live feed behind most applications built on the platform. Developer and SDK documentation →
  • Managing subscriptions in the console sits in the Streams area, whose documentation is being reworked alongside the streaming feature itself.
Go deeper