1

Does Cadence support Azure Cosmos DB Cassandra API instead of Apache cassandra, to persist the Data. If yes, can you share the sample docker-compose configuration.

1 Answers1

1

Last time we checked (2019) the Cosmos DB didn't support Cassandra APIs (or their semantic) needed for Cadence/Temporal to work. We were also advised to use Cosmos APIs directly instead. Unfortunately, we didn't have the resources to implement the Cosmos binding yet.

But you are free to try. I would recommend starting from a helm chart that supports specifying Cassandra as an external dependency.

Maxim Fateev
  • 6,458
  • 3
  • 20
  • 35
  • Thank you for your answer. I tried to run cadence connecting with Cassandra running external running as separate docker image. docker run -e CASSANDRA_SEEDS=172.17.0.3 -e KEYSPACE=cadence -e VISIBILITY_KEYSPACE=cadence_visibility -e SKIP_SCHEMA_SETUP=true -e DYNAMIC_CONFIG_FILE_PATH=config/foo.yaml ubercadence/server:master-auto-setup However still not sure, how to use Cosmos cassandra api for cadence. Like other java based application. just we have to replace the cassandra client properties. How we can achieve for cadence – Ashutosh Kumar Jul 30 '20 at 10:17
  • From the cadence service point of view specifying correct environment variables should be enough. But I'm not an expert in Docker networking to troubleshoot your setup. – Maxim Fateev Jul 30 '20 at 15:59
  • Instead of docker image, I can run Cassandra on local also and will pass the the cassandra server in cassandra seed variable in below command.However I am not able to find, what and how should I put, if I want to use Azure Cosmos Cassandra api docker run -e CASSANDRA_SEEDS=10.x.x.x -e KEYSPACE= -e VISIBILITY_KEYSPACE= -e SKIP_SCHEMA_SETUP=true ubercadence/server: – Ashutosh Kumar Jul 30 '20 at 16:08
  • Because, Azure Cosmos Cassandra documentation says that, one can use the azure cosmos DB in place of Cassandra, using Cosmos cassandra API, just by modifying the Cassandra client code. How we can modify for cadence – Ashutosh Kumar Jul 30 '20 at 16:12
  • You are doing it right by passing CASSANDRA_SEEDS. My guess is that your problem is in the way Docker network is setup. I don't think it allows connecting to an external IP by default. – Maxim Fateev Jul 30 '20 at 17:26
  • Thank you for your Quick reply as always. The thing is that, I have to use Azure CosmosDb to persist data for cadence. and Azure documentation says that, Existing application using cassandra , can be replaced with Azure cosmos db by using Cassandra API client for cosmo db. – Ashutosh Kumar Jul 30 '20 at 17:56
  • I tested it for java based application and it worked. I am trying my best, but still not sure how can I use it for cadence. It would be a great help, if you can guide me – Ashutosh Kumar Jul 30 '20 at 17:57