# canonical/dqlite

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/canonical-dqlite).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

4,338 stars · 248 forks · C · NOASSERTION

## Links

- GitHub: https://github.com/canonical/dqlite
- Homepage: https://dqlite.io
- awesome-repositories: https://awesome-repositories.com/repository/canonical-dqlite.md

## Topics

`database` `raft` `sqlite`

## Description

dqlite is a distributed SQL database that embeds a relational database engine to provide replicated storage across a cluster of nodes. It functions as a replicated SQL engine designed to ensure data remains available and consistent during node failures.

The system utilizes a consensus algorithm to manage leader election and synchronize a replicated log across the cluster. This approach enables automatic cluster failover and leader promotion to maintain continuous service without manual intervention.

The project covers state machine replication, network-based cluster membership, and transaction log persistence for data durability. It includes administrative interfaces for managing the addition and removal of voting members within the distributed environment.

## Tags

### Data & Databases

- [Distributed SQL Databases](https://awesome-repositories.com/f/data-databases/distributed-sql-databases.md) — Provides a relational database engine designed to scale horizontally while maintaining transactional consistency across a distributed cluster.
- [Automatic Failover Controllers](https://awesome-repositories.com/f/data-databases/automatic-failover-controllers.md) — Monitors database health and automatically promotes standby nodes to primary roles during failures. ([source](https://dqlite.io/dqlite/docs))
- [Database Replication](https://awesome-repositories.com/f/data-databases/database-replication.md) — Implements a network protocol to synchronize database records across multiple nodes for high availability. ([source](https://dqlite.io/dqlite/docs))
- [Distributed SQLite Replications](https://awesome-repositories.com/f/data-databases/database-replication/distributed-sqlite-replications.md) — Integrates a distributed SQLite variant to replicate database state across cluster members for fault tolerance.
- [Embedded SQL Engines](https://awesome-repositories.com/f/data-databases/sqlite-storage-adapters/embedded-sql-engines.md) — Embeds a relational database engine on each node to handle local data persistence and SQL execution.
- [Dynamic Cluster Membership Management](https://awesome-repositories.com/f/data-databases/dynamic-cluster-membership-management.md) — Provides mechanisms to dynamically add or remove voting nodes from the cluster without interrupting operations.
- [Transaction Recovery Logs](https://awesome-repositories.com/f/data-databases/undo-logs/transaction-recovery-logs.md) — Writes transaction logs to permanent storage to ensure data durability and facilitate fast system recovery. ([source](https://dqlite.io/))

### DevOps & Infrastructure

- [Distributed Leader Election](https://awesome-repositories.com/f/devops-infrastructure/distributed-leader-election.md) — Implements a distributed process coordination mechanism to ensure a single active leader among multiple cluster replicas.
- [Database High Availability](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clustering/database-high-availability.md) — Coordinates database nodes to ensure continuous service through automated failover and leader election.
- [Consensus Log Replication](https://awesome-repositories.com/f/devops-infrastructure/high-availability-clusters/log-replication-strategies/consensus-log-replication.md) — Uses quorum-based consensus to distribute and synchronize transaction log entries across the cluster.
- [Automated Promotions](https://awesome-repositories.com/f/devops-infrastructure/high-availability-systems/leader-election/automated-promotions.md) — Automatically promotes a new leader when the primary instance becomes unavailable to ensure continuous service. ([source](https://cdn.jsdelivr.net/gh/canonical/dqlite@main/README.md))
- [Cluster State Synchronization](https://awesome-repositories.com/f/devops-infrastructure/node-state-configurations/cluster-state-synchronization.md) — Synchronizes active SQL state across cluster nodes to ensure consistency during failover. ([source](https://dqlite.io/))
- [Fault-Tolerant Coordinators](https://awesome-repositories.com/f/devops-infrastructure/cluster-coordination/fault-tolerant-coordinators.md) — Ensures transaction durability and availability using quorum-based consensus and automatic leader failover.

### Networking & Communication

- [Raft Consensus Implementations](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-systems-coordination/distributed-consensus-protocols/raft-consensus-implementations.md) — Utilizes the Raft protocol to manage replicated logs and handle leader election for cluster consistency.

### Software Engineering & Architecture

- [Replicated State Machines](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/replicated-state-machines.md) — Maintains identical database state across nodes by applying a strictly ordered sequence of committed transactions.
