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++.
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.
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.
How to use
- Run ScyllaDB with Docker:
docker run -d --name scylla -p 9042:9042 scylladb/scylla:latest \
--smp 2 --memory 2G --overprovisioned 1
- Connect with CQL shell:
docker exec -it scylla cqlsh
- 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()));
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}')
Related on TokRepo
- AI Tools for Database -- Database tools and storage engines
- AI Tools for DevOps -- Infrastructure and database management tools
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
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.
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.
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.
Yes. ScyllaDB Alternator provides DynamoDB-compatible API endpoints. Applications using the AWS DynamoDB SDK can connect to ScyllaDB with minimal changes.
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)
- ScyllaDB GitHub Repository— ScyllaDB is a Cassandra-compatible NoSQL database built in C++
- ScyllaDB Documentation— Shard-per-core architecture on Seastar framework
- ScyllaDB Alternator— DynamoDB-compatible API via Alternator
Related on TokRepo
Discussion
Related Assets
Conda — Cross-Platform Package and Environment Manager
Install, update, and manage packages and isolated environments for Python, R, C/C++, and hundreds of other languages from a single tool.
Sphinx — Python Documentation Generator
Generate professional documentation from reStructuredText and Markdown with cross-references, API autodoc, and multiple output formats.
Neutralinojs — Lightweight Cross-Platform Desktop Apps
Build desktop applications with HTML, CSS, and JavaScript using a tiny native runtime instead of bundling Chromium.