flowthings.io is built from the ground up to enable rapid development of solutions for real time data collection, complex event processing, and data delivery.
flowthings.io enables the rapid creation of scalable solutions that require:
- real time data ingestion
- complex event processing
- real time data sharing
- efficient REST, Webhook, and Websocket data distribution
Core API Objects
A Drop represents a single entity of data within on flowthings.io. Drops contains a heterogenous map of elements. It's an atomic piece of information that can exist in one or more Flows.
A Drop could be a reading from a sensor, an inventory update, a location update; the possibilities are endless. Any complex assortment of related data elements can map to the elements of a Drop.
Learn more about Drops at Drop 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 have a limited number of Drops (a capacity of up to 100,000) and can be queried using Flow Filter Language.
Flow Filter Language can also be used to specify a logical filter that will be applied to Drops being written to a Flow. Only Drops that pass the Flow's filter will make it into the Flow.
Learn more about Flows at Flow Object Overview.
Flows can be have one or more Tracks associated with them. A Track's purpose is to monitor, filter, and/or transform the Drops from its source Flow to some number of destination Flows. When a Drop enters a Flow, all Tracks that denote that Flow as a source are executed. Tracks have a "source" which designates the Flow to be monitored, and one or more "destination" Flows, which indicate possible outputs for the track.
Learn more about Tracks at Track Object Overview.
An Identity represents a
flowthings.io user. Each Identity has an ID, which which you can reference other users to form Groups. This can be useful if you are administering a development team on a large application.
Learn more about Identities at Identity Object Overview.
A Group is a collection of users, to whom you might want to grant Share permissions. While Shares can indeed be granted on a user-by-user basis, the purpose of a Group is to make administration more convenient when working with large numbers of users.
Learn more about groups at Group Object Overview.
A Share allows you to grant limited access of your namespace to other Flow users. Unlike Tokens:
- The recipient of a Share must be another registered user of
- A wide range of actions are available. Users can create Flows, Tracks, Tasks or Drops within your namespace
A typical use case of Shares might be used to allow members of a team to collaborate in building a single application.
Learn more about Shares at Share Object Overview.
A Token is means of granting limited access to your application to the outside world. For example, you may wish to grant a unique Token to each of your devices.
Tokens are designed to be sandboxed for security purposes:
- A Token can be restricted to particular Paths. E.g.
- Tokens can read Read any objects from the Paths specified, but may only write Drops
- Tokens may be revoked at any time
- Tokens may have a
duration, after which they expire and cannot be used
Learn more about Tokens at Token Object Overview.