Ditto is doing a version jump from the last milestone version 0.3.0-M2 to 0.8.0-M1. The reasons for this are:
- Ditto wants to provide a first non-milestone release in the next months
- the Ditto codebase is a very mature one, with most of the Java APIs being stable since the very first milestone, a 0.3.0 version would be an understatement
- the Ditto main APIs (things, policies, search) are stable and backwards compatible to all previously released milestones
Therefore Ditto’s first release deserves to be a “mature 0.x” version, we think 0.8.0 reflects this quite well. What is missing for a 1.0.0 are more features towards desired/reported state handling which will be on the agenda for after 0.8.0.
Since the last milestone of Eclipse Ditto 0.3.0-M2, the following changes, new features and bugfixes were added.
Changes
Marked some DittoHeaders as internal
In order to prevent that a user of Ditto’s API (e.g. WebSocket or AMQP) sets arbitrary security relevant headers,
those DittoHeaders
are no marked as “not readable from external”. Other headers which should not be propagated to
the outside of Ditto are marked as “not to be written to external”.
Update to Kamon 1.0 and report metrics to Prometheus
Previously, Ditto was using Kamon 0.6.x and reported metrics/traces to a Graphite back-end. Together with the update to Kamon 1.0 the Ditto services now provide HTTP endpoints which can be scraped by Prometheus in order to get insights about the services.
For more information, please read the monitoring section in the operating guide.
New features
Kubernetes cluster bootstrapping
Ditto now discovers its cluster nodes automatically also when running in Kubernetes. It uses the kubernetes-api in order to discover the other cluster nodes.
An example on how to run Ditto with Kubernetes is provided in the /kubernetes git directory.
Allow placeholders inside connection config
In many cases configuration values of a Connection can be dependent on the
message’s headers. This feature allows Ditto connections to access header fields and use it in the connection’s
authorizationContext
.
For connecting to a Eclipse Hono instance, it is e.g. possible to access the
from Hono authenticated device-id
via the placeholder header:device-id
.
Bugfixes
Fixed excessive memory consumption of things-service
In previous versions, Ditto’s things-service
created a lot of instances for each Thing which was loaded into memory.
This is now optimized so that the service does no longer need so much memory.
Stabilization of AMQP 1.0 and 0.9.1 connections
The relatively new connectivity feature which Ditto added in previous versions had still some bugs and stability issues. In this milestone we put a lot of effort in further stabilizing AMQP 1.0 and 0.9.1 connections
These issues were addressed in several fixes:
Various smaller bugfixes
This is a complete list of the merged pull requests.