Satori Docs

Your definitive guide to subscribing and publishing live data

Overview Direct link

RTM uses the publish-subscribe messaging pattern where publishers send messages to a channel and subscribers receive messages from the channel. Publishers and subscribers are decoupled. RTM service is responsible for buffering, replicating, applying Stream SQL (when requested), and forwarding messages from publishers to subscribers. In this sense RTM serves as a broker between them. It is a simple but powerful concept.

Satori supports two types of channels: 

  • Live data channels
    Live data channels are data feeds that are published on Satori’s Live Portal. While only the channel owner has publishing authorization, anyone can access, analyze, reuse and re-distribute data in live channels.
  • Project channels
    Project channels are live data feeds that require private connection credentials from the project owner to publish and subscribe to the data. Project channels are the default choice for typical applications. 

In terms of RTM functionality, project and live channels are the same functional units and hence referred to plainly as channels. Any channel follows the same rules and one uses the same RTM API, RTM SDKs and tools to work with it. 

To start working with RTM, register for a Satori account: see Dev Portal instructions. You will need to get the endpoint and appkey from Dev Portal to publish and subscribe.

You can publish or subscribe to RTM with:

  • One of the available RTM SDKs

  • Web Console in the Dev Portal

  • a compliant WebSocket implementation of your choice to directly communicate via RTM API. We refer to this method as wire protocol usage.

  • Satori RTM CLI (command line tool)

The RTM API defines the structure, rules and semantics for exchanging the JSON objects between clients and RTM service. We call these JSON objects Protocol Data Units (PDUs). The RTM SDKs and Satori developer tools implement RTM API and abstract you from the tedious details, such as constructing the PDUs yourself.