Integration Made Easy

Dovetail 4.15: The new backend

Raymond Meester
2 min readApr 5, 2024

The Dovetail integration platform is build up like this:

In the backend, the installed flows process all data. Based on a flow, this can be done by endpoints, routers, and transformations. If tracing is enabled, a copy of the message is sent to the storage layer.

The backend itself is build with the Java integration framework: Apache Camel. The framework cannot run on its own, it needs a runtime. To be precise, in needs two runtimes:

  1. Java runtime: Running Java code on the server.
  2. Integration runtime: Manage the lifecycle of integrations.

For long, Dovetail has been using Java 8 and Apache Karaf. Karaf has been a powerful and flexible integration runtime. The problem was that Karaf relied on so-called OSGi bundles. These are Java modules that can be dynamically load and unload.

Apache Camel has long supported OSGi/Karaf. However, in the broader Java ecosystem, the use of OSGi was becoming less and less popular. In the newer versions of Camel, support for Karaf became a best effort. It was time for a new runtime.

Assimbly

Fortunately, Camel provides support for several runtimes, of which I blogged about last year. The requirements for our runtime were:

  • Only dependent on the Camel framework and not other frameworks.
  • API-Driven. All functions are available through Java and REST API’s.
  • Support for Dovetail concepts (like flows and tenants).
  • Support for own flow configuration format.

As we couldn’t find all requirements in the available runtime, we started our own project. The result is our open source project Assimbly:

In these repositories, we develop everything needed for the core of our platform. Assimbly runs on Java 11 (Long term support version) and Camel 3.

In Camel 3 lots of changes were done within the framework. More than 3000 issues were solved in total. I provided an overview of all changes on the official Camel blog. Because there were so many changes, we did a lot of work to ensure current flows still work with the new Camel backend. Also, more than 1000 tests were created to test most scenarios.

We believe that the new runtime will provide Dovetail with a better base for new functionality and faster upgrades to new Camel versions.

--

--