ConfigsApr 11, 2026·3 min read

ScyllaDB — NoSQL Data Store Compatible with Cassandra

ScyllaDB is a high-performance NoSQL database built on the Seastar framework. Drop-in compatible with Apache Cassandra and Amazon DynamoDB APIs but 10x faster thanks to its shard-per-core, shared-nothing architecture written in C++.

TL;DR
ScyllaDB provides Cassandra and DynamoDB API compatibility with a shard-per-core C++ architecture for consistent low-latency at scale.
§01

What it is

ScyllaDB is a high-performance NoSQL database built on the Seastar framework in C++. It is API-compatible with Apache Cassandra (CQL) and Amazon DynamoDB, meaning you can migrate existing applications without code changes. The shard-per-core architecture dedicates each CPU core to its own data shard, eliminating contention.

ScyllaDB targets teams running latency-sensitive workloads at scale: time-series data, IoT telemetry, user profiles, and real-time analytics. It handles millions of operations per second with predictable tail latencies.

§02

How it saves time or tokens

ScyllaDB's Cassandra compatibility means no learning curve for teams already using Cassandra. Drop it in, point your existing drivers at ScyllaDB, and get better performance with fewer nodes. The shard-per-core design reduces the number of servers needed compared to Cassandra for the same throughput.

Automatic tuning (CPU, memory, I/O) means less time spent on JVM garbage collection tuning that Cassandra requires.

§03

How to use

  1. Run ScyllaDB with Docker:
docker run -d --name scylla -p 9042:9042 scylladb/scylla:latest \
  --smp 2 --memory 2G --overprovisioned 1
  1. Connect with CQL shell:
docker exec -it scylla cqlsh
  1. Create a keyspace and table:
CREATE KEYSPACE myapp WITH replication = {
  'class': 'SimpleStrategy',
  'replication_factor': 1
};

USE myapp;

CREATE TABLE users (
  user_id UUID PRIMARY KEY,
  name TEXT,
  email TEXT,
  created_at TIMESTAMP
);

INSERT INTO users (user_id, name, email, created_at)
VALUES (uuid(), 'Alice', 'alice@example.com', toTimestamp(now()));
§04

Example

# Python driver (same as Cassandra driver)
from cassandra.cluster import Cluster

cluster = Cluster(['127.0.0.1'])
session = cluster.connect('myapp')

# Insert
session.execute(
    'INSERT INTO users (user_id, name, email, created_at) VALUES (%s, %s, %s, toTimestamp(now()))',
    (uuid.uuid4(), 'Bob', 'bob@example.com')
)

# Query
rows = session.execute('SELECT * FROM users LIMIT 10')
for row in rows:
    print(f'{row.name}: {row.email}')
§05

Related on TokRepo

§06

Common pitfalls

  • ScyllaDB uses CQL (Cassandra Query Language), which is not SQL. JOINs, subqueries, and aggregations across partitions are not supported. Design your data model around query patterns.
  • Single-node Docker deployments are for testing. Production requires at least 3 nodes for replication and fault tolerance.
  • ScyllaDB wants dedicated hardware. Running other services on the same machine causes performance degradation because Seastar expects exclusive CPU and memory access.

Frequently Asked Questions

Can I migrate from Cassandra to ScyllaDB?+

Yes. ScyllaDB is wire-protocol compatible with Cassandra. Existing Cassandra drivers, CQL queries, and data models work without modification. Use ScyllaDB's sstable loader to migrate data.

Is ScyllaDB open source?+

ScyllaDB Open Source is free under AGPL. ScyllaDB Enterprise and ScyllaDB Cloud are commercial products with additional features like incremental compaction, workload prioritization, and managed infrastructure.

How does ScyllaDB compare to Cassandra performance?+

ScyllaDB typically delivers 5-10x better throughput per node compared to Cassandra due to its C++ implementation and shard-per-core architecture. It also provides more consistent tail latencies by avoiding JVM garbage collection pauses.

Does ScyllaDB support the DynamoDB API?+

Yes. ScyllaDB Alternator provides DynamoDB-compatible API endpoints. Applications using the AWS DynamoDB SDK can connect to ScyllaDB with minimal changes.

What consistency levels does ScyllaDB support?+

ScyllaDB supports all Cassandra consistency levels: ONE, QUORUM, ALL, LOCAL_QUORUM, EACH_QUORUM, and more. Tunable consistency lets you trade durability for latency per query.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets