- Persistence of digital twins
- Specification of the "Ditto Protocol" for interaction with twins
- Emitting change notifications whenever a twin was changed
- Providing a search index for efficiently finding twins by their currently reported state
- Fine grained access control to twins -> managed by own entity: policies
- Support for APIs: HTTP/REST, WebSocket, AMQP 1.0 (especially Eclipse Hono), AMQP 0.9.1, MQTT 3.1.1, MQTT 5, Apache Kafka, HTTP push
- Integration points for defining Eclipse Vorto model references as "definitions" for twins
- Documentation and specification of all APIs
- Java artifacts of Ditto's core model + the "Ditto Protocol"
- A horizontally scalable microservice based architecture
- Docker images of all microservices
- Deployment descriptors for Docker Swarm, Kubernetes, OpenShift + Helm template for k8s deployment
- Clients for both Java and JavaScript
API stability
HTTP API stability
Ditto uses schema-versioning at the HTTP API level in order to being able to evolve breaking APIs. It is backward compatible to the prior versions 1.0.0 and 1.1.0.
Java API stability
The Java APIs will for the 1.x release be kept backwards compatible, so only non-breaking additions to the APIs will be done. This is enforced by a Maven tooling.
The following Java modules are treated as Java for which compatibility is enforced:
- ditto-json
- ditto-model-*
- ditto-signals-*
- ditto-protocol-adapter
- ditto-utils
- ditto-client
No efforts towards i18n are done in this release.
Ditto delivers docker images with a pre-bundled Java runtime (powered by OpenJ9). Ditto supports deployment to Docker Swarm and Kubernetes out of the box.