Skip to main content

Module Dependency Map

Pick the smallest set of modules that covers your use case. Most applications can start with the facade module and add specialized modules only when needed.


Dependency Graph

Arrows point from dependent → dependency. konditional-core is the only module with no runtime dependencies within this graph.


Module Reference

konditional io.github.amichne:konditional:VERSION

Default entry point for most applications. This facade depends on konditional-runtime and therefore transitively pulls konditional-core and konditional-serialization.


Layer 1 — Core (always required)

konditional-core io.github.amichne:konditional-core:VERSION

The foundation. Provides the Namespace model, typed feature declarations, evaluation API, and deterministic bucketing primitives. Required for every use case.


Layer 2 — Runtime Integration (almost always required)

konditional-runtime io.github.amichne:konditional-runtime:VERSION

Adds InMemoryNamespaceRegistry and the runtime lifecycle API (load, rollback, disableAll, history). Required whenever configuration changes at runtime rather than being baked in at compile time.

konditional-serialization io.github.amichne:konditional-serialization:VERSION

Adds ConfigurationSnapshotCodec and the NamespaceSnapshotLoader for ingesting JSON at the trust boundary. Required whenever configuration arrives from outside the process (remote endpoints, files, environment).


Layer 3 — Observability (add when migrating or operating at scale)

konditional-observability io.github.amichne:konditional-observability:VERSION

Adds evaluateWithShadow(...) for dual-run comparison and mismatch telemetry. Use during migration from a legacy flag system or when validating a configuration change before promoting it.

konditional-otel io.github.amichne:konditional-otel:VERSION

Adds OpenTelemetry metrics and traces for the feature evaluation lifecycle. Use when you need standardized telemetry for dashboards, alerts, and SLO tracking.


Layer 4 — Delivery Infrastructure (add for hosted/remote delivery)

konditional-http-server io.github.amichne:konditional-http-server:VERSION

Exposes HTTP endpoints for configuration delivery and runtime operations. Use when you serve configuration to external consumers rather than loading it in-process.

openfeature io.github.amichne:openfeature:VERSION

Bridges Konditional into the OpenFeature standard. Use when your organization standardizes on OpenFeature-compatible clients or tooling.

  • OpenFeature provider implementation
  • Context mapping between OpenFeature and Konditional context types
  • Guide: Enterprise Adoption

Layer 5 — Schema and Contracts (add for structured custom values)

kontracts io.github.amichne:kontracts:VERSION

Adds the schema DSL for defining structured custom values with compile-time-enforced constraints. Use when a flag's value is a structured object rather than a primitive or enum.

openapi io.github.amichne:openapi:VERSION

Generates OpenAPI schemas from Kontracts definitions. Use when you publish machine-readable API contracts for external consumers.


Starting pointModules
Evaluate + load remote config (most applications)konditional
Evaluate static flags only (no remote config)konditional-core
Custom minimal graphkonditional-core + konditional-runtime + konditional-serialization
Migrating from a legacy flag systemabove + konditional-observability
Production at scale (telemetry, hosted delivery)above + konditional-otel + konditional-http-server
OpenFeature compatibilityabove + openfeature
Structured custom valuesany of above + kontracts

Next Steps