This minor release introduces the following new features
- Apache Kafka is now supported as a messaging system for events and telemetry messages. This can be enabled by configuring protocol adapters to use Hono's new Kafka-based client. Note that this is considered an experimental feature for the time being, i.e. the functionality and API may change without prior notice.
- New APIs have been added for the Kafka-based messaging. Please refer to the API docs the specifications.
- The MQTT adapter now allows clients to indicate whether they want the target device's tenant and/or device IDs to be included in the topic used when publishing commands.
- The caching behavior of the protocol adapters' AMQP based registry clients has been changed. All adapter Verticle instances now share a single cache instance per service. In particular, there is a single cache for all responses returned by the Tenant, Device Registration and Credentials service respectively. In addition, each cache is now being used for all responses to requests regardless of the tenant. Consequently, the service client configurations' responseCacheMinSize and responseCacheMaxSize properties now determine the overall number of responses that can be cached per service. In previous versions the properties determined the number of entries per client instance and tenant. The new approach allows for better control over the maximum amount of memory being used by the cache and should also increase cache hits when deploying multiple adapter Verticle instances. The org.eclipse.hono.adapter.client.registry.amqp.ProtonBasedTenantClient now makes sure that only a single request to the Tenant service is issued when multiple (parallel) get method invocations run into a cache miss. This should reduce the load on the Tenant service significantly in scenarios where devices of the same tenant connect to an adapter at a high rate, e.g. when re-connecting after one or more adapter pods have crashed.
- The Device Registry Management API's update credentials operation has been extended to allow specifying the auth-id and validity period implicitly by means of including a (Base64 encoded) client certificate in the new cert property. This can be used instead of specifying the client certificate's subject DN and public key's validity period explicitly in the auth-id and secrets properties. This should make setting the correct auth-id value much less error prone.
- Hono now supports auto-provisioning of devices that connect via gateway. For more information please refer to the Device Provisioning concept page in the documentation.
- The Device Registry Management API has been extended now to support searching tenants with optional filters, paging and sorting options. Note that this is implemented and supported by the MongoDB based device registry only at the moment.
In addition to these new features, many bugs have been fixed as well.