Browse documentation

ADR 001: SQLite as the default store

On this page

Status: Accepted · 2026-04

Context

Integration Atlas is local-first. A developer should be able to clone the repository and have a working application in a minute, with no database to install or configure. At the same time the persistence layer must not paint us into a corner if a team later wants a shared PostgreSQL instance.

Decision

Use SQLite by default through SQLAlchemy 2.0, with models written in a dialect-neutral way. The connection pragmas that are SQLite-specific live in one function (db.py::_configure_sqlite) and nothing else in the codebase knows which engine is in use.

Identifiers are text UUIDs rather than integer autoincrements.

Consequences

Alternatives considered