Files
zeekay abf99d05fc papers: reorganize into per-paper dirs, add Antje Worring as co-author
Restructured from flat .tex/.pdf files into per-paper subdirectories.
Added Antje Worring as co-author on all papers.
Synced PDFs to pdfs/ for download site.
2026-04-18 21:50:07 -07:00

49 lines
2.2 KiB
TeX

\section{Introduction}
\label{sec:intro}
%% ============================================================
Lux ecosystem services---ATS, Broker, Transfer Agent, IAM, KMS---run
on Hanzo Base, an embedded SQLite runtime. Each organization (tenant)
gets its own SQLite database file, isolated by design. This per-org
model eliminates multi-tenant query scoping bugs, simplifies backups,
and enables true data sovereignty: an org's data is a single file that
can be encrypted, moved, or deleted atomically.
The problem is durability. SQLite databases live on local disk. In
Kubernetes, local disk is either emptyDir (lost on pod restart) or a
Persistent Volume Claim (PVC). PVCs on cloud providers fail: GCE
persistent disks detach during node migrations, EBS volumes hit
``attaching'' limbo during AZ failovers, and local SSDs on bare-metal
nodes die without warning. A securities exchange cannot tolerate data
loss of compliance records, audit trails, or KYC state.
The solution is continuous WAL-based replication to durable object
storage with end-to-end encryption. This proposal standardizes that
solution.
\subsection{Design Goals}
\begin{enumerate}[nosep]
\item \textbf{Zero data loss}: Every committed WAL frame reaches
durable storage within the sync interval (default 1\,s).
\item \textbf{End-to-end encryption}: No plaintext database content
exists outside the pod boundary.
\item \textbf{Per-principal isolation}: Each org/user derives a unique
encryption keypair; compromise of one principal's key reveals
nothing about other principals.
\item \textbf{Transparent recovery}: A fresh pod restores from S3
automatically via init container; no operator intervention.
\item \textbf{No new dependencies}: Uses existing ecosystem
components---\texttt{hanzoai/replicate}, \texttt{hanzoai/age},
\texttt{hanzoai/s3}, \texttt{hanzoai/kms}.
\end{enumerate}
\subsection{Scope}
This standard applies to all services in the Lux and Hanzo ecosystems
that use SQLite as their primary data store. It does not apply to
PostgreSQL-backed services (which use standard streaming replication)
or to on-chain state (which is durable by construction).
%% ============================================================