Using existing database as a single source of truth

Flowable folks,

We’ve an existing CQRS module in which we want to use flowable as an embedded engine but we don’t want to store the state in a separate flowable database(RDBMS) as we’ve cassandra as an event store(single source of truth). Is it possible in flowable to load/store state from/in existing database i.e. if i construct state using events in my event store and provide it to flowable engine somehow, will it be possible to execute workflows including timer tasks etc?

Thanks a lot!

Theoretically it is possible. The whole data layer is pluggable and you can populate the data from any other system (however, do take in account you’ll be losing transactionality for some systems). However, as the feature-set of Flowable is big. this means a lot of work to be able to support all use cases and provide all data.

Hi Joram,

Thanks for the insights! The problem is that if we want to embed flowable in an existing microservice, we now have 2 databases - 1 for the existing stuff and another for the flowable.

If the microservice DB is supported by Flowable, then you can share the same DB. If the microservice DB is something like Cassandra or another unsupported DB, you will need 2 DBs. Or you could write and contribute a data source connector, like we have for MongoDB and CockroachDB - but it does need to be a data source that supports transactions.

Cheers
Paul.

Thanks a lot PHH!

I’ll try to find a solution for the same. If that works i’ll definitely share it.