ScyllaDB
A C++ rewrite of Cassandra’s design with one shard per CPU core, speaking both CQL and the DynamoDB API.
- What it is
- Wide-column stores
- Type
- Commercial product
- Made by
- ScyllaDB Ltd.
- License
- ScyllaDB Software License Agreement 1.1 (source-available) since 2025.1; AGPL 3.0 up to ScyllaDB Open Source 6.2
- Facts checked
- 6 October 2026
What it is
ScyllaDB follows Cassandra’s design: a cluster of equal nodes, rows placed by a hash of the partition key, replicas set per keyspace, and a consistency level chosen per request. It speaks Cassandra’s CQL protocol, so Cassandra drivers work, and can import Cassandra’s SSTables. Underneath it is C++ on the Seastar framework rather than Java. Each node is split into shards, one per CPU core: a thread pinned to that core with its own memory and slice of the data. New keyspaces use tablets by default. A table is cut into tablets, each replicated on several nodes, which split as they grow and are moved between nodes and cores by a background load balancer. Schema and topology changes go through Raft. An optional second API, Alternator, accepts DynamoDB’s JSON-over-HTTP requests on a port you enable.
Until version 6.2 (October 2024) there was an AGPL open-source edition beside a paid Enterprise one. In December 2024 ScyllaDB dropped the AGPL edition; since 2025.1 (March 2025) there is a single release under the source-available ScyllaDB Software License Agreement. The code is on GitHub. Free use is capped at 10 TB of storage and 50 vCPUs across all clusters, and excludes offering it as a service. Version 1.1 of the licence (April 2026) limits free use to organisations that haven’t been paying customers in the last 12 months. Anything beyond that needs a commercial licence or ScyllaDB Cloud, a managed service on AWS and Google Cloud priced by instance type, storage and support plan, hourly or on one- to three-year terms, with no per-request charges. The current release is 2026.3.
Why teams pick it
- Many Cassandra applications move over unchanged: same CQL protocol and drivers, and Cassandra SSTables can be imported
- No JVM to tune: C++ on Seastar, with each CPU core running its own shard of the data
- Tablets rebalance automatically and let several nodes join at once, with no manual cleanup afterwards
- Alternator runs DynamoDB applications on your own clusters or another cloud
- Raft keeps schema and topology changes consistent across the cluster
Watch out for
- Not open source any more: free use is capped at 10 TB and 50 vCPUs, excludes SaaS, assigns your modifications to ScyllaDB and allows audits
- Compatibility targets Cassandra 3.11 with parts of 4.0: no user-defined functions, triggers or Storage Attached Indexes
- Alternator lacks DynamoDB’s multi-item transactions, per-table throughput limits and backup APIs, and you provide the load balancing
- Vector search is available only in ScyllaDB Cloud
- Raft needs a majority of nodes for schema and topology changes, so a two-datacenter cluster loses them if one datacenter fails; ScyllaDB recommends three
Alternatives
What all wide-column stores have in common →How it fits with other technologies
What ScyllaDB uses
What uses ScyllaDB
One node with both APIs: CQL like Cassandra, and the DynamoDB API through Alternator · bash
# CQL on 9042, DynamoDB API (Alternator) on 8000
docker run --name scylla -d -p 9042:9042 -p 8000:8000 scylladb/scylla \
--alternator-port=8000 --alternator-write-isolation=always
# CQL, exactly as with Cassandra
docker exec -it scylla cqlsh -e "
CREATE KEYSPACE shop WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 1};
CREATE TABLE shop.orders (customer_id text, order_ts timestamp, total decimal,
PRIMARY KEY (customer_id, order_ts)) WITH CLUSTERING ORDER BY (order_ts DESC);"
# the AWS CLI, pointed at ScyllaDB instead of AWS
export AWS_ACCESS_KEY_ID=none AWS_SECRET_ACCESS_KEY=none AWS_DEFAULT_REGION=us-east-1
aws dynamodb create-table --endpoint-url http://localhost:8000 --table-name carts \
--attribute-definitions AttributeName=user_id,AttributeType=S \
--key-schema AttributeName=user_id,KeyType=HASH --billing-mode PAY_PER_REQUEST
aws dynamodb put-item --endpoint-url http://localhost:8000 --table-name carts \
--item '{"user_id": {"S": "u-42"}, "items": {"N": "3"}}'Licence and editions#
What you may run for free has changed twice since 2024. From the licence text and ScyllaDB’s announcement:
ScyllaDB Open Source, up to 6.2
AGPL 3.0, ended 2024The open-source line ran from 2015 to 6.2 in October 2024, beside a paid Enterprise edition. Those versions stay under the AGPL, but there will be no new open-source releases.
ScyllaDB 2025.1 and later
source-availableOne release stream for everyone. Free use is limited to 10 TB of total storage and 50 vCPUs across all deployments; you may not offer it as a SaaS or database service or use it to compete with ScyllaDB, and modified versions become ScyllaDB’s property.
Licence 1.1, April 2026
non-customers onlyThe free licence now applies only to organisations with no commercial relationship with ScyllaDB in the previous 12 months. Paying customers must license all use, except non-production work such as CI and testing within the usage limit.
Commercial licence and ScyllaDB Cloud
per instanceSelf-managed subscriptions, or the managed ScyllaDB Cloud on AWS and Google Cloud with Standard, Professional and Premium support plans. Priced by instance type (vCPU and RAM), storage and plan: hourly on demand, one- or three-year subscriptions, or prepaid credits. There are no per-request charges, and a 30-day developer trial.
Alternator or DynamoDB?#
Alternator aims to run DynamoDB applications unmodified. Its compatibility page lists where it still differs:
| Amazon DynamoDB | ScyllaDB Alternator | |
|---|---|---|
| Capacity | On-demand or provisioned throughput per table | You size the cluster; billing mode and provisioned throughput are accepted but ignored |
| Endpoint | One Regional endpoint, load-balanced by AWS | Every node listens; you add a load balancer or client-side balancing |
| Transactions | TransactWriteItems and TransactGetItems, up to 100 items | Not supported; single-item conditional updates work |
| Multi-Region | Global tables in the Regions you pick | Every table spans the datacenters that existed when it was created |
| Backups | On-demand backups and point-in-time recovery | Not through the API; use snapshots or ScyllaDB Manager |
| Where it runs | AWS only | Your servers, any cloud, or ScyllaDB Cloud |
See it in a real stack
No architecture uses ScyllaDB yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2012–2026
Avi Kivity and Dor Laor met at Qumranet, where Kivity started KVM, the Linux hypervisor behind many public clouds, and both later worked at Red Hat. Their next company, Cloudius Systems, first built OSv, an operating system for running a single application in a cloud virtual machine. They then turned their kernel and hypervisor experience to a database and wrote a Cassandra-compatible one from scratch in C++, on Seastar, a framework that shards all work onto individual cores. Its first tagged release, 0.10, came in October 2015, and 1.0 followed in March 2016. Cloudius Systems became ScyllaDB.
ScyllaDB was open source under the AGPL, with a paid Enterprise edition. It added a DynamoDB-compatible API, moved schema and topology changes onto Raft and, in 6.0 in June 2024, introduced tablets.
In December 2024 Dor Laor announced that 6.2 would be the last AGPL release. Running two release streams had become too costly, Raft, tablets and S3 integration had pulled once-paid features into the core, and ScyllaDB itself wrote nearly all the code. Since 2025.1 there has been one source-available release, and a 2026 licence update narrowed who may use it for free.
Why it’s built this way
- A rewrite in C++, not a fork of Cassandra
- The founders came from kernel and hypervisor work and built a new engine from scratch, while keeping Cassandra’s CQL protocol and file formats so applications and drivers could move without changes.
- One shard per core, sharing nothing
- Seastar gives each core its own requests and data and passes messages between cores instead of sharing memory under locks, so the work scales with the number of cores.
- Tablets instead of fixed token ranges
- Small, movable pieces of each table let the cluster rebalance in the background and let several nodes join at once, without the manual cleanup that token ranges required.
- Leaving the AGPL for a source-available licence
- ScyllaDB said maintaining separate open-source and Enterprise releases was unsustainable when it was the only significant contributor and its paid features had moved into the core.
Timeline
- 2012
Cloudius Systems starts OSv, an operating system for cloud virtual machines
- 2015
First tagged Scylla release, 0.10, in October
- 2016
Scylla 1.0 is released in March
- 2024
6.0 introduces tablets; 6.2 becomes the last AGPL release
- 2025
2025.1, the first source-available release, ships in March
- 2026
Licence 1.1 limits free use to organisations that aren’t customers
- ScyllaDB: Company (founders, Qumranet, KVM, Red Hat)
- OSv on GitHub: “originally designed and implemented by Cloudius Systems (now ScyllaDB)”
- Seastar: shared-nothing C++ framework used by ScyllaDB
- scylladb/scylladb on GitHub: tag scylla-0.10 (October 2015)
- scylladb/scylladb on GitHub: tag scylla-1.0.0 (March 2016)
- scylladb/scylladb on GitHub: tag scylla-6.0.0 (June 2024)
- Dor Laor, ScyllaDB blog: Why we’re moving to a source available license (Dec 2024)
- scylladb/scylladb commit: relicense from AGPL to ScyllaDB-Source-Available-1.0 (Dec 2024)
- scylladb/scylladb commit: LICENSE, update to version 1.1 (April 2026)
Sources22 · facts checked 6 October 2026
- ScyllaDB Software License Agreement 1.1 (usage limit, eligibility, SaaS restriction, audits)
- Dor Laor, ScyllaDB blog: Why we’re moving to a source available license (Dec 2024)
- scylladb/scylladb on GitHub: tag scylla-2025.1.0 (March 2025)
- ScyllaDB docs: Install ScyllaDB 2026.3 (two latest versions supported)
- ScyllaDB docs: Ring architecture (partitioner, replication, Cassandra lineage)
- ScyllaDB docs: Data distribution with tablets (default, load balancing, limitations)
- ScyllaDB docs: Raft consensus (schema, topology, quorum requirement)
- ScyllaDB docs: Glossary (shard)
- ScyllaDB docs: Consistency levels
- ScyllaDB docs: ScyllaDB and Apache Cassandra compatibility
- ScyllaDB docs: Alternator, DynamoDB API in ScyllaDB
- ScyllaDB docs: Alternator for DynamoDB users (differences, unimplemented features)
- ScyllaDB docs: Getting started with Alternator (Docker)
- ScyllaDB docs: Vector search (ScyllaDB Cloud only)
- ScyllaDB docs: Integrate ScyllaDB with Spark
- ScyllaDB pricing (plans, instance-based billing, trial)
- ScyllaDB CDC source connector for Kafka
- ScyllaDB Operator docs
- Seastar: shared-nothing design and message passing
- DynamoDB Developer Guide: Transactions
- DynamoDB Developer Guide: Global tables
- DynamoDB Developer Guide: Point-in-time recovery