SQLite · Paxos · Odin

Your SQL.
More than
one place to write.

SQLodin is a distributed SQL database. Send a write to any voter. Paxos gives the cluster one ordered history, stored on disk.

Open source · MIT license · Odin + Python · v0.6.0

Multi-master writes. A shared history.
Three voters, each accepting SQL writesApplications can write to any voter. The voters exchange Paxos messages, persist decisions, and apply the same ordered SQL history to their SQLite databases. SQL writeSQL writeSQL writeVoter AVoter BVoter C SQLite + diskSQLite + diskSQLite + disk 123123123
One replicated databaseMajority required for progress
01 / Write anywhere

Every voter can propose.

Rotating slot ownership lets voters admit writes without forwarding each request to a standing leader. The cluster still agrees on one order.

02 / Use familiar tools

SQL, from a terminal or Python.

An interactive CLI, parameter binding, transactions and SQLAlchemy. FTS5 and exact vector search work alongside structured records.

03 / Keep the evidence

Durability you can examine.

A durable Paxos journal, replayable application state, authenticated peers and explicit retry identities. Read the models, tests and design decisions.

Start with a local file

A query before
a cluster.

The executable includes a local SQLite shell. Try it first, then follow the service guide to configure certificates and replicated voters.

Set up a cluster ↗
TERMINAL · LINUX x86-64
curl -fLO https://github.com/insanai/sqlodin/releases/latest/download/sqlodin-linux-amd64.tar.gz
tar -xzf sqlodin-linux-amd64.tar.gz
./sqlodin local notes.db

CREATE TABLE note (id INTEGER PRIMARY KEY, body TEXT);
INSERT INTO note VALUES (1, 'Hello, SQLodin');
SELECT * FROM note;

-- A local file is not yet a replicated database.

Find your way through the system

Learn it. Use it. Question it.

A useful fit

Transactional data.
More than one machine.

Internal tools, inventory and job records, service metadata, and applications combining SQL with text or embedding search.

Read the measured workloads ↗

The 0.6.0 server accepts one to five fixed voters. Release qualification used three voters; targeted tests and models also cover five. Replication does not shard the database or remove SQLite's single-writer constraint. Supported SQL and transaction sizes have explicit bounds.

SQL contract · Proofs and their assumptions

One executable, three entry points

Server. Cluster client. Local shell.

Linux x86-64 and macOS Apple Silicon / Intel builds include SQLite, sqlite-vec and OpenSSL. On Windows, use the Linux binary under WSL2.

Search the documentation