Pages in Concepts
This page describes how devices are represented and identified throughout Hono and its API’s.
Hono is designed to structure the set of all internally managed data and data streams into strictly isolated subsets. This includes the registration data and credentials of devices, internal users that are used for authentication, and the Business Applications that are part of such subsets as well. This way of strict isolation is generally known as multi-tenancy, where a tenant is the term for such a subset. Such an isolation is essential for enabling a scalable distributed architecture to handle independent subsets as if each subset had its own installation (which would be much harder to maintain and would not benefit from runtime cost sharing).
Business applications can be informed by Hono about specific states of a device. This concept - referred to as Device notifications - is described in detail here.
Command & Control
Business applications can send commands to devices following the Command & Control API. This concept page describes how this API is used by applications to send commands to devices that connected to one of Hono’s protocol adapters.
Resource limits such as the maximum number of device connections allowed per tenant or the allowed data volume of the messages over a period of time per tenant can be set in Hono. Hono specifies an API ResourceLimitChecks that is used by the protocol adapters for the verification of the configured resource limits. A default implementation of this API is shipped with Hono. This default implementation uses the live metrics data retrieved from a Prometheus server to verify the resource-limits, if configured.
Hono internally allows protocol adapters to emit connection events. Indicating if a connection was established between a device and the protocol adapter. This functionality is intended for connection oriented protocols (like MQTT and AMQP) and it works on a “best effort” basis to create such events. It depends on each protocol adapter implementation if it emits such events or not. Since 0.6.0 This feature has been added in Hono 0.6. Previous versions do not support nor implement connection events.