How can we use NuoDB with Camunda Engine?

Hi all,

We would like to run a new database with the engine: NuoDB. It is a distributed SQL database. See here.

From your experience, how complexe is it to plug the engine into a new SQL database?

Is there a lot of change to make on the engine side or is it just configuration?

Thanks!

Hi @chrisgode,

interesting, why do you want to use this database?

I couldn’t say how much you have to change, but as there is a jdbc driver, you can give it a try.

All SQL statements that the engine use are here: https://github.com/camunda/camunda-bpm-platform/tree/master/engine/src/main/resources/org/camunda/bpm/engine/impl/mapping.

Hope this helps,

Ingo

In addition to what Ingo said, it should be doable to integrate a currently not supported database if:

  • It provides JDBC access
  • It speaks SQL and organizes data in relations
  • It provides similar transactional guarantees as the supported databases on READ COMMITTED isolation level

The last one can be tricky with any kind of distributed database with respect to visibility of data, locking, etc.

If all of this is given, it may be that the database’s SQL dialect does not support all kinds of queries Camunda makes. Then you may have to maintain some custom queries.

The way to try this out is to run the Camunda engine test suite against your database. It should cover most of the possible issues.

Thank you guys for this feedback,

We tried this approach last week: plug the JDBC driver, setup the connection to NuoDB, and run the tests shipped with the engine (more than 10k tests, congrat guys! You are working hard!). I had to modify some of the queries and we also experimented some transactional errors that required deep changes in the core classes of the engine. Mainly, I had to add an explicit commit in class DbSqlSession.java and set the Ibatis autocommit option. After solving some of those errors, there is still more to solve so my guess is that it’s not going to be that easy. We keep on working on it!

1 Like