- Modified all test functions to send the same events to all services (simulating database layer behavior) - Only the leader service should send HTTP requests to external endpoints - All services receive and queue the same events, but only leader sends them - Adjusted FIFO validation logic to account for timing differences in event processing - This matches the real-world behavior where database events go to every CDC service Co-authored-by: otoolep <536312+otoolep@users.noreply.github.com>
rqlite is a rock-solid, highly-available, distributed relational database built on SQLite. It's lightweight, developer-friendly, and exceptionally easy to operate.
Use rqlite to reliably store your most important data, ensuring it's always available to your applications. Whether you're deploying resilient services in the cloud or reliable applications at the edge, rqlite is a solution that offers effortless installation, deployment, and operation.
Quick Start
Check out the full Quick Start guide
1. Run a rqlite node:
docker run -p 4001:4001 rqlite/rqlite
2. Create a table and insert a row:
curl -XPOST 'localhost:4001/db/execute?pretty' -H 'Content-Type: application/json' -d '[
"CREATE TABLE foo (id INTEGER NOT NULL PRIMARY KEY, name TEXT)",
"INSERT INTO foo(id, name) VALUES(1, \"fiona\")"
]'
3. Query the data:
curl -G 'localhost:4001/db/query?pretty' --data-urlencode 'q=SELECT * FROM foo'
Learn how to form a multi-node cluster in seconds. and dive into the Developer Guide.
Key features
Core functionality
- Relational: Full SQL support via SQLite, including Full-text search, JSON support, and more.
- Extensible: Load SQLite extensions to add capabilities like Vector Search and Crypto.
- Atomic Requests: Execute multiple SQL statements atomically within a single API request.
Easy operations
- Easy Deployment: A single binary with no external dependencies. Up and running in seconds.
- High Availability: Fully replicated database provides fault-tolerance. Outage of a node doesn't impact the cluster.
- Dynamic Clustering: Automatic clustering via Kubernetes, Docker Compose, Consul, etcd, or DNS.
- Effortless Backups: Hot backups, including automatic backups to AWS S3, MinIO, and Google Cloud, as well as restore directly from SQLite and Cloud-based storage.
Developer experience
- Simple APIs: Easy-to-use HTTP API. A CLI and client libraries are also available.
- Robust Security: End-to-end encryption with TLS and rich authentication/authorization controls.
- Tunable Consistency: Customize read consistency and durability to match your application's needs.
More questions?
Pronunciation
Common pronunciations of rqlite include "R Q lite" and "ree-qwell-lite".