RippleDB
RippleDB
InternalADRs

ADR-0016: store-* and db-* Packages Own Backend/Runtime Dependencies

Runtime-specific deps (SQLite, Postgres, etc.) must live outside core/client/server in store-* and db-* packages.

Status

Accepted

Context

Concrete implementations require dependencies (SQLite driver, Postgres client, etc.). We want to avoid pulling these into the core dependency tree.

Decision

All runtime-/backend-specific dependencies live in persistence packages, for example:

  • @rippledb/store-sqlite
  • @rippledb/db-postgres

Core/orchestration packages depend only on interfaces, never on implementations:

  • @rippledb/core, @rippledb/client, @rippledb/server must not depend on any store-* or db-* package.

Alternatives Considered

  • A single @rippledb/adapters package
  • Core selecting implementations via optional dependencies

Consequences

  • Users install only what they need
  • Dependency tree stays clean
  • Clear responsibility separation

On this page