# ADR-002: PostgreSQL + Immutable Ledger as Source of Truth

## Status
Accepted

## Date
2026-02-21

## Author
GPUaaS Core Team

## Context
Prototype used JSON file persistence and mutable user balance. Public-facing billing requires durability and financial integrity.

## Decision
Use PostgreSQL as system-of-record. Financial state is derived from immutable ledger entries, not mutable balance fields.

## Consequences
- Strong consistency and auditability for billing.
- Requires careful schema migrations and invariant tests.
- Enables enterprise billing extensions without redesign.

## Alternatives Considered
- Continue JSON DB: rejected for durability/integrity concerns.
- Mutable balance as truth: rejected due to reconciliation and tamper risk.
