Core Concepts
Hivekit is designed as a data platform for geospatial applications. To get the most out of it, it is important to understand its core concepts and how they relate to each other.
Connecting
Hivekit supports connections via HTTP, Websocket and TCP.
Authentication
Every connection to Hivekit's APIs, whether via HTTP Request or Websocket, needs to be authenticated. This happens by passing an authentication token in JWT format when you establish the connections.
Permissions
Permissions allow you to control what a user (or a data provider or anyone else connecting to the server) can and can't do. Here's how they work:
Presence
Presence lets you know which objects are currently "online". Whether an object is online depends on whether a data provider for the object is currently connected.
Realms
A realm is a space within which something happens. It can be as small as a single room or as large as the entire world. All other concepts, such as Objects, Areas, Instructions, Subscriptions, exist within the scope of a realm.
Objects
Objects are the core building block within Hivekit. An object usually represents an entity in the physical world, such as a person with a smartphone, a vehicle like a car, truck, plane, scooter or delivery rider, or a stationary structure such as a machine in a production hall or a bridge across a street.
Areas
Area Map
Subscriptions
This is a general introduction to the concept of subscriptions. For concrete implementations and code samples, have a look at the relevant client libraries
Instructions
Instructions are small, versatile pieces of code that execute in response to data changes or at regular intervals within Hivekit. They can be compared to AWS Lambda Functions or logic written into business rules engines..
Publish / Subscribe
Each realm in Hivekit comes with a convenient publish/subscribe mechanism that enables fast and straightforward many-to-many messaging. This mechanism is ideal for transmitting data that isn't directly associated with the state of objects, areas, or instructions, such as event notifications, incoming messages, alerts, and more.
History
Hivekit maintains a log of every update send to the platform. By accessing this history through the realm.history API, you can easily track the changes to an object's location and data between two timestamps.