Skip to content

Adoption path

The safest way to adopt Konditional is to grow it in layers. Start with the typed evaluation path inside one team-owned module, then add rollout and JSON loading when the local model already feels like a win.

Phase 1: local namespace

Start with konditional-engine only. Define one namespace beside the feature owner, keep the first caller nearby, and ship a small typed decision through evaluate(...).

This phase proves the most important question first: do typed feature values and namespace-local ownership improve the code you already maintain every day.

Phase 2: rollout and diagnostics

Once one namespace is stable, add rampUp { ... } and explain(...) for the flags that need rollout visibility. This keeps progressive delivery tied to a stable ID and a deterministic decision path.

This phase is where the determinism story becomes operationally useful instead of purely architectural.

Phase 3: JSON boundary

Add konditional-json when you are ready to bring in external snapshots. Use fromJson(json) at the boundary and branch on ParseResult so malformed payloads fail without mutating live state.

This phase turns runtime delivery into an additive boundary, not a rewrite of the namespace model.

Phase 4: operational hardening

After the first namespace and first boundary are stable, expand the surface. Common next steps are adding more namespaces, documenting module ownership, and writing invariant-focused tests for determinism, isolation, and boundary failures.

Next steps

The quickstart follows the same sequence in a small working path.