Ingestion, Streams, Datapoints, and Assets

Streams

A stream is an important concept in Formant's data management. You can think of a stream as an endless supply of one particular data type, much like streaming live video is an endless supply of image frames. A stream is the named "channel," or data pipe, on which your device will send data to Formant.

Each data point on a stream is associated with a timestamp for when that data point was sent. This allows you to view the state of your device and the value of its data at any given point in time.

There are two types of streams in Formant:

  1. Telemetry Streams, which are used for observability. These streams are sent to and stored in the cloud.
  2. Realtime Streams, which are used primarily for teleoperation or where near instantaneous data is needed. These are peer-to-peer connected streams that are not stored in the cloud.

Data is sent to the Formant Cloud by an Agent that is running on that device. The Agent knows where to send the stream, and makes sure that the data is timestamped and associated with the correct device. See Agent for more information.

Datapoints and Assets

The Formant Agent will send two types of data to a data stream: a datapoint and an asset.

Datapoints are smaller, atomic points of data whose value can quickly be uploaded or downloaded. Think of numbers, booleans, text, etc.

In contrast, assets are larger filetypes that would be more expensive to pass around the system. Instead, each asset is uploaded once and only the URL to that asset is passed around. That way, the full value of the asset is only retrieved when needed.

Both datapoints and assets are sent to a Formant stream. While using the web app, there will be no difference to the user when a datapoint or stream is used. Only when retrieving an asset via the Formant SDK will you need to resolve a URL to get the asset value.

For a more information about datapoints and assets, including which values are considered which, visit how telemetry streams work.

Ingestion

Ingestion is the name for the process by which data is sent from an agent on a device to the Formant Cloud. In that way, Formant will "ingest" the data and make it available for use throughout the Formant ecosystem.