Hi Cassandra community,
With the close of 2025 here, here’s my reflection and thanks to the community.
Feel free to pile on and add anything I’ve missed (more than likely :)
This year felt notably more grounded: more regular releases, a more diverse
contributor base, and a lot of the unglamorous, detail-oriented improvements
and maintenance work that make a distributed database trustworthy. The small
stuff— the patch releases, the reviews, maintaining CI, IP hygiene and ASF
processes, doc fixes, and clear, constructive communication with a bias toward
action—are not just “details.” They are the cohesion and sustainability of the
project.
To sum up the year, here is my selection of a few fun stats and milestones:
• 26 releases shipped across 5 release branches (3 maintained), including 11
subproject releases¹
• Test growth: 62k tests added² in trunk, from 135k in cassandra-5.0 to 197k
in trunk, an increase of ~45%
• Release-train commitment is back³: we aim for an annual major release each
April, with quarterly trunk alphas (Jul/Oct/Jan)
• Drivers++ donated to the project: Java, GoCQL, C/C++, Python, Spark
Connector; NodeJS in progress; CCM and Easy-Cass-Stress were also donated⁴
• A steady increase in CEP activity across core, ops, and ecosystem
integration
• 57% more posts, 21% more threads, and 6% more people posting on the dev
mailing list⁵
If I were to break it up into a few themes, it would go like… Shipping with
confidence, Performance economics, Platform surface area, 2026 and 6.0, and
Community and communication hygiene.
** Shipping with confidence **
We maintained three active release branches with regular patch versions, and
continued to support older branches when security concerns warranted it.
Ecosystem artifacts: drivers, Sidecar, and Analytics; also shipped. The
maintenance load feels sustainable, and the release cadence should give
operators clear expectations going into 2026.
Tip for operators: if you’re waiting for a release due to a particular
ticket/commit, reach out on #cassandra-dev⁶ and let it be known.
We also saw Cassandra’s operational “surface area” strengthen in a number ways:
• Repairs becoming an automated capability in-tree⁷
• Sidecar discussions increasingly framed as “control plane” building blocks
(rolling restarts, diagnostics, CLI ergonomics)
• 160+ nodetool commands converted from Airline to Picocli— simplifying the
code, improving safety and maintainability, and preserving compatibility⁸
• Increased continuation of security and safety fixes across configuration,
tooling, and dependencies
• Comments and security labels on schema elements (CEP-52)⁹
• Constraints Framework (CEP-42)¹⁰ merged, and CQL Management API (CEP-38)¹¹
in progress
On the contributor-experience front, we saw a healthy increase in tests and
continued CI stabilization. The CI pipeline and Jenkins infrastructure is now
repeatable¹² on any Kubernetes cluster. Building on that, AWS has donated
substantial capacity in pre-ci.cassandra.apache.org — an important step toward
unblocking and accelerating contributors, and a catalyst for expanding
contributor diversity. Local development also got easier: running individual
tests is simpler now with our testing scripts¹³.
*** Performance economics (big TCO wins) ***
Cassandra 5.0 has been GA for 16 months¹⁴ and is delivering major performance
and TCO gains – You crazy if you’re not now on it.
Tip for operators: look at cassandra_latest.yaml¹⁵ for the best “defaults”
reference. The settings there are production-safe; they are not in
cassandra.yaml because we’re conservative about changing defaults for existing
production clusters during upgrades. This aligns with the project’s approach
of reducing surface-change risk during upgrades and introducing new
capabilities for a cycle in experimental (or not-enabled-by-default) mode.
Some key performance improvements:
• Density improvements via UCS¹⁶ + Tries¹⁷ + JDK17 (lower tail latencies and
2–6× denser nodes)
• Separated compaction buffer read-ahead for compaction (CASSANDRA-15452)
• Zero Copy Streams proving a successful combination¹⁸ with UCS (important
for running denser nodes)
• ZSTD with dictionary SSTable compression¹⁹
• Ongoing work reducing object allocations on hot paths (e.g., writing 2
million rows/sec)²⁰
• Cursor-based compactions (CASSANDRA-20918)
• JDK21 support (CASSANDRA-18831)
• Finishing Transient Replication/Witnesses (CEP-46)²¹
• Mutation repairs (CEP-45)²²
• Flat keys and trie interfaces (CEP-57)²³
And some performance numbers:
• 5.0 with UCS + Tries + JDK17 gives 3–8× node density increase over 4.1
• 38% better write perf²⁴ and 12% better read perf over 4.1
• an independent benchmark comparing 5.0 against 3.0/3.11 reported:
• up to 3× throughput on KeyValue workloads
• up to 10× latency reduction on saturated IoT/time-series workloads
• up to 2× LWT throughput contention ceiling (Paxosv2)
• up to 4× TCO reduction
As always: validate your specific workload. Different data models behave very
differently, and anti-patterns in particular can shift materially as
performance fixes land.
*** Platform surface area (ecosystem & integration) ***
Sidecar + Analytics shipped²⁵, enabling practical integration with analytics
and ML/AI ecosystems and operational workflows. This includes seamless
import+export of big data in standard formats (e.g., Parquet or any
Spark-supported format) and point-in-time (snapshot-based) Spark jobs that
don’t impact Cassandra’s performance or latencies. Personally, this is one of
the most exciting product improvements I’ve seen from Cassandra, a foundational
step for building HTAP capabilities off a low-latency OLTP database.
Drivers in the project now include Java, Go, C/C++, Python—and soon NodeJS.
Onboarding these codebases takes real work (releases, docs, CI, etc.), and we
are always looking for extra hands. Drivers are often a user’s first point of
code contact with the project, and it is one of the best ways to get introduced
and involved (let’s keep spreading the word).
*** 2026 and 6.0 ***
Looking into 2026 and 6.0, our “biggest rocks” are:
• TCM as an explicit direction for cluster metadata– a foundation for many
new features and improvements²⁶
• Accord continuing as a major line of investment and now merged in trunk;
it’s a significant industry-first milestone toward strict serializability in
open source²⁷
• Building on Accord, Jeff’s quick remarkably simple prototype for
SQL/Postgres compatibility²⁸
By LOC some of the largest patches that have landed in trunk were:
• Automated Repair Inside Cassandra (CEP-37)⁷
• Cursor-based optimized compaction path (CASSANDRA-20918)
• ZSTD dictionary compression support¹⁹
• Migration of all nodetool commands from Airline to Picocli⁸
*** Community and communication hygiene ***
One of the healthiest signals this year wasn’t code or benchmarks (despite some
jaw-dropping ones). It was the community and communication hygiene.
On the community front, a big thank you to Paulo and everyone involved in
organizing and presenting this year’s Cassandra track at Community Over Code in
Minneapolis. Fun fact: Cassandra was the most mentioned technology at the
conference²⁹. All the videos from the talks are found on youtube³⁰. We also
saw a resurgence of Cassandra meetups across the USA. Hopefully we’ll see more
of that outside the US as well, as well as efforts to move past meetups from
meetups.com to luma.com
On communication hygiene: the dev mailing list has become much easier to only
partly follow while still staying informed and included. Better threading and
conclusions, the CEP process, and the monthly-style community updates are all
useful for digesting and onboarding, tracking releases, spotting high-leverage
discussions, and understanding CI/velocity without reading every thread
end-to-end. Special thanks to Himanshu Jindal and Josh McKenzie for the
digests along the way— these efforts become increasingly important as the
project expands across subprojects and ecosystem surface area.
All of this has also made it easy to run our socials on BlueSky, LinkedIn, and
X. I’ve been using Buffer.com to schedule posts across channels and I only
need to spend a handful of minutes every few weeks to queue up content. Reach
out if you’d like to help out here too. And if you’re not already on
BlueSky³¹, join us there—there’s a strong database crowd and healthy engagement
but we could use more from C* peeps.
To wrap up, here are a few examples of the big discussion threads from this
year:
• Roadmap to Cassandra Analytics 1.0³²
• CEP-48: First-Class Materialized View Support³³
• CEP-50: Authentication Negotiation³⁴
• JDK support policy clarification (modernizing baselines by aligning GA
branches with current JDK LTS expectations)³⁵
• How we version our releases (sticking to major versions for annual major
versions)³⁶
• CEP-49: Hardware-Accelerated Compression (strong interest in keeping
vendor-specific logic out of core and staying pluggable)³⁷
• Release cadence commitment: April-to-April major-branch rhythm and
quarterly alphas, with a stated transition plan as 6.0 approaches³
Hope you all got a decent break, a quiet moment with people you care about, and
of course a little time to ponder what Cassandra holds for 2026. Thanks for
the awesome year.
Mick
–––––––––
References:
1 – Downloads archive https://archive.apache.org/dist/cassandra/
2 – Tests increase https://ci-cassandra.apache.org/job/Cassandra-trunk/
3 – April Major Releases
https://lists.apache.org/api/source.lua?id=nr39vc5t357pd8cjlshxb5nxb95zmdsx
4 – IP donations https://incubator.apache.org/ip-clearance/
5 – dev@ ML stats
https://demo.kibble.apache.org/dashboard.html?page=mail&view=7b60f3612e40b043f4024665a1e4b8e73fff74f7ef38c41f04d2d1a7&from=1735426800&to=1767049199
6 – Slack #cassandra-dev https://the-asf.slack.com/archives/CK23JSY2K
7 – Automated Repairs (CEP-37)
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37%3A%2BApache%2BCassandra%2BUnified%2BRepair%2BSolution
8 – Migrate nodetool from airline to picocli
https://issues.apache.org/jira/browse/CASSANDRA-17445
9 – Schema Annotations (CEP-52)
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-52%3A+Schema+Annotations+for+ApacheCassandra
10 – Constraints Framework (CEP-42)
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-42%3A+Constraints+Framework
11 – CQL Management API (CEP-38)
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-38%3A+CQL+Management+API
12 – Repeatable ci-cassandra –
https://issues.apache.org/jira/browse/CASSANDRA-18137
13 – Test scripts –
https://github.com/apache/cassandra/blob/cassandra-5.0/.build/README.md
14 – Announcing 5.0 GA
https://cassandra.apache.org/_/blog/Apache-Cassandra-5.0-Announcement.htm
15 – cassandra_latest.yaml
https://github.com/apache/cassandra/blob/cassandra-5.0/conf/cassandra_latest.yam
16 – UCS
https://cassandra.apache.org/doc/5.0/cassandra/managing/operating/compaction/ucs.html
17 – Tries
https://cassandra.apache.org/_/blog/Apache-Cassandra-5.0-Features-Trie-Memtables-and-Trie-Indexed-SSTables.html
18 – UCS + ZCS https://the-asf.slack.com/archives/CK23JSY2K/p1765991829139219
19 – ZSTD with Dictionary (CEP-54)
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-54%3A+ZSTD+with+Dictionary+SSTable+Compression
20 – 2.2M rows per second
https://www.linkedin.com/feed/update/urn:li:activity:7398115300140896256/
21 – Finishing Transient Replication/Witnesses
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=353601959
22 – Mutation Tracking
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-45%3A+Mutation+Tracking
23 – Flat keys and trie interfaces
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-57%3A+Flat+keys+and+trie+interfaces
24 – perf comparison between 4.1 and 5 –
https://www.linkedin.com/pulse/performance-comparison-between-cassandra-version-41-5-jiri-steuer-pxbtf
25 – Spark Bulk (CEP-28)
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-28%3A%2BReading%2Band%2BWriting%2BCassandra%2BData%2Bwith%2BSpark%2BBulk%2BAnalytics
26 – TCM (CEP-21)
https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-21%3A%2BTransactional%2BCluster%2BMetadata
27 – Accord & Strict Serializability
https://cwiki.apache.org/confluence/x/FQRACw
28 – Jeff’s Postgres demo
https://lists.apache.org/thread/3ronbmprckk2897yw94v3lc1lqggf872
29 – Cassandra @ CoC –
https://www.linkedin.com/pulse/community-over-code-apache-software-foundation-na-2025-paul-brebner-irznc
30 – Community Over Code videos
https://www.youtube.com/playlist?list=PLqcm6qE9lgKKvJ456OBZzcvMZ6YFpCyUg
31 – BlueSky https://bsky.app/profile/cassandra.apache.org
32 – Cassandra Analytics 1.0
https://lists.apache.org/thread/r29nskkc3j183fl0k1sd91tp7z051zwt
33 – CEP-48: First-Class Materialized View Support
https://lists.apache.org/thread/wbn1kvz8yshcf1z0ozjf7wpsgmvmkwvj
34 – CEP-50: Authentication Negotiation
https://lists.apache.org/thread/cdx4fttq72j4dz7cyhxp14pt7k6rd6bc
35 – How we handle JDK support
https://lists.apache.org/thread/vr7j2ob92k6fbcwvlfo60l3scylzdbft
36 – How we version our releases
https://lists.apache.org/thread/jy6vodbkh64plhdfwqz3l3364gsmh2lq
37 – Hardware-accelerated compression CEP-49)
https://lists.apache.org/thread/t766stj07rb9vgrg2cyyd5s7n3g2zdgt