Skip to content

Apache Cassandra Sidecar: The Companion for U... Francisco Guerrero Hernandez & Saranya Krishnakumar

Blue TeamThe Linux Foundation20 minOpen on YouTube ↗

Demonstrates apache Cassandra Sidecar: The Companion for U... Francisco Guerrero Hernandez & Saranya Krishnakumar and evaluates key implications for security practitioners.

Summary

## Overview

Apache Cassandra Sidecar is a control plane and management process introduced to simplify the operation and administration of Cassandra database clusters. It is implemented as a separate JVM process that runs alongside Cassandra nodes, providing essential functionality through REST APIs without requiring operators to learn new tools or programming languages. The project was initiated to consolidate the various proprietary sidecar solutions that different organizations have developed independently.

## Architecture & Technical Design

Cassandra Sidecar is built on top of Vert.x, a reactive toolkit designed for building asynchronous applications. This architecture choice enables the system to scale effectively by multiplexing concurrent workloads using an event loop model, avoiding the thread-per-request bottleneck found in traditional application servers. The underlying implementation leverages Netty for efficient handling of blocking I/O operations.

The sidecar is structured as a stateless process with several key components: a server with route handlers that direct HTTP requests, version-specific adapters that interface with different Cassandra versions via JMX and CQL, periodic health check tasks, a feature-rich Java client with retry policies and exponential backoff, and an in-JVM distributed testing framework. The sidecar can manage one or more Cassandra instances concurrently and automatically adapts to different Cassandra versions. When a node is upgraded and temporarily disconnected, the sidecar maintains health checks and automatically provisions new version-specific adapters once connectivity is restored.

## Core Functionality & Use Cases

The sidecar provides REST APIs for essential database management operations, including running health checks, obtaining cluster topology and settings, creating and managing snapshots, and streaming data to and from Cassandra. A major use case is enabling faster analytics through integration with the CP28 analytics project. The sidecar provides zero-copy streaming directly from data directories, eliminating expensive read paths through Cassandra's query layer. This approach reduces memory overhead and enables bulk operations that are at least 30X faster than traditional methods. Built-in throttling mechanisms prevent CPU and bandwidth overuse during bulk operations, maintaining cluster stability.

## Why Cassandra Sidecar Is Necessary

Cassandra clusters are complex to operate, requiring various automation tools for maintenance, execution of bulk commands, and monitoring. By consolidating these functions into a single management process with REST APIs, operators gain a unified, language-agnostic interface. The open-source effort was motivated by the reality that virtually every organization running Cassandra has developed its own sidecar solution with different implementations. Consolidating these efforts reduces fragmentation.

## Getting Started & Community Contribution

The project lives under the Apache umbrella with comprehensive documentation. Developers can experiment locally using the included Dev module for a three-node cluster with minimal configuration. The project welcomes community contributions in areas including cluster-wide APIs for coordinated operations, authentication and authorization mechanisms, and scheduled task capabilities. Community members can track issues through Apache JIRA, participate via the development mailing list, or connect through the ASF Slack channel. Ongoing efforts include implementing leader election and coordination mechanisms allowing sidecars to communicate with each other.

Related talks