ADR-033 — Feature flags

Architecture decision record — status: Accepted.

Source: docs/adr/ADR-033-feature-flags.md

ADR-033: Feature flags

Estado

Accepted — 2026-08-23
Amendment 2026-09-08: flags por Subscriber. Flags Cashlane (inbox/QBO) no son producto IVPrior.

Contexto

Hay que desacoplar deploy de release sin LaunchDarkly el día 1.

Decisión

Flags por Subscriber (columna de fábrica puede seguir siendo organizationId hasta remap) + defaults globales. Persistidos en Postgres (FeatureFlag). Evaluación en application layer.

V1: flags de producto IVPrior se definen en briefs/slices (scanner, billing, signup.open). Flags copiados de Cashlane (inbox.gmail, QBO, payment links al deudor) no se activan.

Sin experimento A/B complejo. Sin flag en el cliente para saltarse auth.

Kill switch: flag off detiene nuevos efectos colaterales; no borra datos.

Alternativas

LaunchDarkly / Unleash: se evalúan si hay muchas cuentas y reglas. El puerto FlagEvaluator permite cambiar.

Consecuencias

  • Scaffolding puede incluir la tabla + evaluator no-op (todo on en local).
  • “Tenants” en copy de flags = leftover; el sujeto es Subscriber.