Running on Amazon Keyspaces

Curious if anyone has been running Temporal with Amazon Keyspaces vs. managing their own Cassandra cluster? I know there is some specifics around the authentication around DataStax.


This a great question, thank you. I casually tested Temporal + Amazon Keyspaces and it didn’t work — we need to do a bit of work to enable this use case.

I don’t know what our roadmap plans are for this work (cc: @ryland).

1 Like

We’ve had a few requests for keyspaces so this is something we definitely want to support and I’m actively tracking it. Right now it seems like a few off the shelf hosted Cassandra solutions aren’t actually as compatible as we hoped so as Mark said, there is considerable work.

1 Like

Hello, is there any update on supporting AWS Keyspace on temporal. One first thing is AWS keyspace does not support creating TYPE on the cassandra table which temporal has. There might be other discrepancies too. As of now, can we assume that temporal cannot be used with AWS Keyspaces?

As of know it does not run on AWS Keyspaces. We will monitor their progress and add support as soon as it is feasible.

At this moment is seems that the missing feature in Keyspaces is batching LWTs. Are you aware of any other missing features that Temporal makes use of?

We would like to make a request to AWS to add the features required by Temporal to Keyspaces, hence the interest in the topic.

My guess is that Keyspaces are implemented on top of DynamoDB. And DynamoDB itself doesn’t really support multikey transactions.

It is my impression that Keyspaces runs on top of Cassandra. In the past (~1year), AWS offered a managed Cassandra service as well, but they killed it and moved to offering it in serverless mode.

They list the key differences with Cassandra here. So it seems that they actually support batching unconditional INSERT, UPDATE, or DELETE commands. What they do not support is batching LWTs.

Additionally, they do not support all the consistency levels, such as ALL or SERIAL, but they do support LOCAL_QUORUM. Ideally the latter would be enough, as it would also be more performant.