Feature flag management for gradual rollout of new functionality.
This namespace provides pure functions for checking feature flags based on environment variables and configuration.
The environment map is always a parameter. Each of these functions used to
have a convenience arity that called (System/getenv) itself, in a
namespace whose own docstring promised no side effects — so the promise and
the code disagreed, and every caller of a 1-arity was reading ambient
process state from the functional core (BOU-302). The convenience lives in
wagoe.platform.shell.feature-flags, which is a shell namespace and may
read the environment.
Design Principles:
Feature flag management for gradual rollout of new functionality. This namespace provides pure functions for checking feature flags based on environment variables and configuration. The environment map is always a parameter. Each of these functions used to have a convenience arity that called `(System/getenv)` itself, in a namespace whose own docstring promised no side effects — so the promise and the code disagreed, and every caller of a 1-arity was reading ambient process state from the functional core (BOU-302). The convenience lives in `wagoe.platform.shell.feature-flags`, which is a shell namespace and may read the environment. Design Principles: - Pure functions: No side effects, configuration passed as parameter - Explicit defaults: Clear behavior when flag not set - Type-safe: Boolean coercion with validation - Backward compatible: Defaults to false for new features
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |