apache / apache/pekko-persistence-cassandra

Feedback: ScyllaDB support and compatibility considerations.

Open
#135 6 comments 0 reactions 0 assignees View on GitHub
Dominant language
Scala
Stars
15
Forks
17
Avg merge
6h 43m
Merged PRs (30d)
11

Description

When attempting to use the `tables-autocreate` feature specified in an `application.conf` file, I encountered a failure due to a compatibility issue between Cassandra and ScyllaDB. The problem arises because the `unchecked_tombstone_compaction` option, used within the compaction strategy configuration, is not recognized by [ScyllaDB](https://opensource.docs.scylladb.com/stable/cql/compaction.html#common-options).

The plugin expects this option during the table creation process. The relevant code can be found [here](https://github.com/apache/incubator-pekko-persistence-cassandra/blob/90d80ad20dd72b9eff09ab1998e3354f78227313/core/src/main/scala/org/apache/pekko/persistence/cassandra/compaction/BaseCompactionStrategy.scala#L56).

I worked around this by manually creating the necessary tables without using the `unchecked_tombstone_compaction` option. This workaround suggests that broader compatibility might be achievable with some adjustments.
Given the growing popularity and adoption of ScyllaDB, it would be nice if future versions of the plugin could consider providing some support for ScyllaDB.

Contributor guide

Open the contributing guide

Research direction

Start with core/src/main/scala/org/apache/pekko/persistence/cassandra/compaction/BaseCompactionStrategy.scala and trace how tables-autocreate builds the compaction strategy from application.conf. Compare the generated option set with ScyllaDB's documented compaction options and determine the intended compatibility boundary. Done means the plugin's table-creation path has a defined approach for ScyllaDB without breaking Cassandra support.

Written by the indexing model from the issue text.

Assessment

Tech stack
cassandra, scala
Domain
databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.