Connecting camunda engine to Read replica in AWS

Hi,

We currently have camunda engine configured to talk to AWS aurora postgress with it pointing to writer instance. We want to set up new camunda instance pointing to Read replica’s of camunda and leverage it for querying process/task and any GET operations into Engine. I understand camunda needs the default transaction isolation level to be set as READ_COMMITTED but are there ways to leverage other transaction isolation levels like TRANSACTION_REPEATABLE_READ and set up read only camunda app server?

@Ingo_Richtsmeier @jonathan.lukas Do you have perspective on this?

Hi @harish_malavade,

my perspective on this: don’t do it.

The engine is built to use a common database that can store data. I don’t know if it is possible to suppress all writes to the database.

Replicating a database is a complex topic.

What would be the benefit to misuse a replicated database in this way?

Hope this helps, Ingo

1 Like

Thank for sharing your perspective.
Our current architecture has multiple custom UI’s from reporting perspective that would have requirements to access workflow data(get me current state of process, get me history, get me task data etc). We dont have control over these Custom UI’s and also we dont want these queries impact the runtime performance and wants to protect our engine.
We were thinking with this we could isolate the runtime execution from the queries that our custom UI’s will have to do that way we separate out the reads.

You think there will not be any performance impacts of sharing same camunda cluster for both real time query from multiple clients vs regular process/task operations like start process, claim/complete task etc?

Hi @harish_malavade,

It depends on the queries you execute.

In our product stack we have introduced Optimize to answer reporting requests based on exported data.

Hope this helps, Ingo

1 Like

Thanks @Ingo_Richtsmeier . we are on camunda 7 and I understand even camunda 7 has optimize, is that talking to database directly? if so does it have caching built in?

Hi @harish_malavade,

Optimize reads the delta of new datasets regularly, but each dataset once from the Camunda 7 Rest API and saves them in Elasticsearch. All reports get their data from Elasticsearch queries.

So, Elasticsearch is the cache here.

You can have a closer look at the details here: Installation | Camunda Platform 8 Docs and here: Data import | Camunda Platform 8 Docs

Hope this helps, Ingo

1 Like

Yes it helps Indeed and makes sense. Thanks @Ingo_Richtsmeier