# Gauntlet documentation

> Status: Pre-beta. Gauntlet is a distributed SQL database whose only durable store is one object-store bucket. These pages cover what works today, what is refused, and what is coming.

Gauntlet is a distributed SQL database. Its only durable store is one S3-compatible bucket. Nodes hold nothing you cannot lose: memory and local disk are caches, and a node that dies is replaced by starting another one against the same bucket.

> **Pre-beta.** Gauntlet is pre-release software. Its own beta acceptance run (three hosts, node kills, 48–72 hours of load and a restore drill) has not passed yet. There is no public download; builds go to invited testers. [Join the waitlist](https://gauntlet-db.stavros.xyz/start) to be told when that changes.

## The short version

- **Transactions are strictly serializable**, including transactions that span shards. A write is acknowledged only after the bucket holds what recovery needs.
- **SQL is the SQLite family.** The engine is Turso. It is not PostgreSQL SQL.
- **Clients connect over the PostgreSQL wire protocol** (psql, psycopg, node-postgres, pgjdbc) or over an HTTP JSON API.
- **One process type.** `gauntlet serve` runs on each host and serves many named databases. Nodes find each other through leases in the bucket.
- **Idle databases cost only their bytes.** A released database makes no bucket requests until its next query.

## Start here

| Page | Use it to |
|---|---|
| [Quickstart](https://gauntlet-db.stavros.xyz/docs/quickstart.md) | Run one node, then three nodes on one bucket, and connect a client |
| [Connect an agent](https://gauntlet-db.stavros.xyz/docs/agents.md) | Hand a coding agent an accurate, secret-free prompt |
| [Transactions](https://gauntlet-db.stavros.xyz/docs/concepts/transactions.md) | Learn the guarantee and the two error codes every client must handle |
| [SQL compatibility](https://gauntlet-db.stavros.xyz/docs/sql/compatibility.md) | See which SQL works and what is refused |
| [Limits](https://gauntlet-db.stavros.xyz/docs/limits.md) | Know what pre-beta Gauntlet does not do before you rely on it |

## Who it fits today

It fits you if all of these are true:

- You can run three Linux x86_64 hosts and one bucket, and you are comfortable with TLS certificates, systemd or Docker, and Prometheus.
- Your data can be reloaded or restored from your own backup. There is no in-place upgrade from the beta to v1.
- Your application can retry a transaction on `40001` and can handle an unknown commit outcome (`40003`).
- A SQLite-style dialect is acceptable, and you do not need PostgreSQL catalogs, extensions or an ORM's introspection queries.

It does not fit you if you need any of these today: production guarantees, PostgreSQL SQL, `ALTER TABLE` or `CREATE INDEX`, point-in-time restore, per-user roles, or storage that shrinks when you delete data. Most of those are on the [roadmap](https://gauntlet-db.stavros.xyz/docs/roadmap.md).

## For agents and tooling

Every page has a **Copy as Markdown** button and a raw Markdown URL (add `.md` to the page's address). The whole documentation is indexed at [/llms.txt](https://gauntlet-db.stavros.xyz/llms.txt) and concatenated at [/llms-full.txt](https://gauntlet-db.stavros.xyz/llms-full.txt). Both are generated from the same files as these pages.

---
Source: https://gauntlet-db.stavros.xyz/docs
