Flow Object Overview


If a Drop is the core data object in the service, a Flow is the core stream object. Flows are real time streams of Drops. Flows can contain a maximum capacity of 100,000 Drops and can be queried using an explicit query using Flow Filter Language. Flows can be interconnected via Tracks so that any Drop added to one Flow can be "tracked" to one or more other in real-time. While being tracked, flowthings.io provides the capability to perform real time processing using javascript augmented with additional functionality provided by Flow.js.

Flows can also specify filters. These filters can be used to only allow Drops containing certain values to be written to the Flow, be they written from Tracks or via the REST or Websockets API.

New Drops added to Flows can be consumed via REST queries, Webhooks, and WebSockets.

{
  "filter": "EXISTS service_available",
  "path": "/my_account_id/raw_messages",
  "description": "Raw data from devices, must contain at least a service_available element",
  "capacity": 1000
}

Flow Object Members


path

The path member can be a string of up to 128 characters. The path is always starts with a / and an account id, and at least one other identifier, with each identifier is seperated by a /; much like a file system. This allows for Flows to be organized and filtered easily when using Flow Filter Language.

capacity

The maximum number of Drops stored within the Flow. The default value is 1,000, maximum is 100,000. A value of 0 will store no data. When the Flow exceeds its capacity of Drops, older Drops will be deleted automatically.

description

The description member can be a string of any length. It is optional and it's primary purpose is to store a human-readable description or contextual data concerning the Flow.

filter

Filters are used to require that Drops written to a Flow have specific data elements and values. See the documentation for Flow Filter Language for more information.

Working with Flows