rqlite 10.3.1 to 10.4.0: Cluster Integrity, Streaming Backups, and CDC Security

rqlite is a lightweight, open-source, distributed relational database built on SQLite and the Raft consensus protocol.

Versions 10.3.1 through 10.4.0 focus on four core themes: safeguarding cluster consistency under local fault conditions, overhauling how database backups stream over the network, improving the Change Data Capture (CDC) system, and tightening storage edge cases — partly with the aid of AI-assisted development and testing.

The changes are backward-compatible, though operators running CDC with Role-Based Access Control (RBAC) should review user permissions introduced in 10.3.7.

Safeguarding Cluster Integrity

In a consensus-driven database, silent node divergence is a very serious failure mode. A major focus of this series is ensuring nodes fail fast if local SQLite storage misbehaves.

Version 10.4.0 identifies fatal, node-local SQLite errors and exits the process immediately rather than letting a damaged node drift out of sync with the Raft log. Many thanks to Noah Watkins for flagging this issue.

Other critical failures now trigger structured fatal logging instead of unstructured panics. Earlier releases in the series similarly hardened recovery, ensuring clean process termination if an SQLite snapshot restore fails after a database swap.

Restarting is a valid approach for all these cases – because on restart the node always rebuilds from a known good state.

Improving Backup Processing

Streaming large databases over HTTP requires clear failure semantics. Starting with version 10.4.0, the HTTP layer now uses the X-STREAM-ERROR HTTP trailer header to signal failure if an error occurs while streaming a backup. This way clients can explicitly detect if rqlite encountered an error while streaming the data to the client.

CDC Correctness and Access Control

Change Data Capture received two important operational improvements. To ensure correctness, CDC now suppresses rolled-back transactions so external consumers only ever observe committed updates. On the security front, version 10.3.7 closes an RBAC permission gap by introducing dedicated permissions and configuration flags for updating the CDC high watermark.

Storage Robustness and AI-Assisted Testing

Snapshot management has been further hardened: snapshot ordering is now completely independent of host clock drift and snapshot artifacts are strictly validated before application. File operations on Windows now include retry mechanisms to tolerate transient OS file locks specific to that operating system.

This series also highlights the growing role of AI-assisted engineering in rqlite development. In 10.3.3, several subtle, long-standing edge cases across snapshot and query recovery paths were resolved with the help of GPT-6 Astra.

Queued Writes and Toolchain

Version 10.4.0 introduces configurable retry limits for Queued Writes, giving operators finer-grained control over rqlite network error handling. Finally, starting with 10.3.5, rqlite binaries are built with Go 1.27 alongside routine updates to the SQLite driver and gRPC dependencies.

For full details, see the CHANGELOG. To discuss these releases or ask questions, join the rqlite Slack channel.

Leave a Reply

Your email address will not be published. Required fields are marked *