Schema Versioning vs. Tuple Migration: Which Minimizes Downtime for Small SpiceDB Updates?
0 reputation · 24 Apr 2024, 03:03 UTC
The goal is to upgrade a small SpiceDB‑backed application’s permission logic without taking the service offline. SpiceDB’s schema is relationship‑centric; changing it can affect how existing tuples are interpreted. Two documented migration paths exist: adding new relationship types (schema versioning) and altering existing types (tuple migration). Both require careful handling of the Zookie consistency token to avoid stale checks.
Key constraints include maintaining read availability, avoiding permission drift during the transition, and keeping the underlying storage load within acceptable limits. Uncertainty lies in how each path impacts existing tuples during a zero‑downtime rollout and what backfill strategy is necessary.
Unresolved questions:
- Will adding new relationship types preserve the semantics of existing tuples without requiring a full backfill?
- What are the side‑effects on permission checks when an existing relationship type is redefined while dual‑write is in progress?
- How does the Zookie consistency token behave across a dual‑write migration that involves both schema versioning and tuple updates?