A ServiceLoadedToggleMap
is a ToggleMap that uses util-app's
service loading mechanism (see com.twitter.app.LoadService
) to be loaded.
Toggles
are used for modifying behavior without changing code.
Toggles
are used for modifying behavior without changing code.
Feature Toggles for detailed discussion on the topic.
A collection of Int-typed toggles which can be used to build a form of feature toggles which allow for modifying behavior without changing code.
A collection of Int-typed toggles which can be used to build a form of feature toggles which allow for modifying behavior without changing code.
Expected usage is for code to have toggles passed into their constructors instead of dynamically creating new toggles on every call.
Feature Toggles for detailed discussion on the topic.
ServiceLoadedToggleMap and StandardToggleMap for typical usage entry points.
ToggleMaps in JSON format.
A ToggleMap that is the composition of multiple underlying ToggleMap implementations in a specific ordering designed to balance control between the operators/service-owners and the library owners.
A ToggleMap that is the composition of multiple underlying ToggleMap implementations in a specific ordering designed to balance control between the operators/service-owners and the library owners.
The ordering is as such:
GlobalFlag
-backed ToggleMap, provided via ToggleMap.flags.The expectation is that 1, 2, and 3 give service-owners/operators the tools to operate and test toggles while library owners would have control over 4 and 5. Flags and in-memory settings allow for rapid testing and overrides while file-based configs are for static configuration owners have settled on.
The JSON file-based configuration works via Java resources and must be
placed in specific locations in your classpath's resources:
resources/com/twitter/toggles/configs/
. The file-names take the form
$libraryName.json
for the library owner's configuration and
$libraryName-service.json
for the service owner's configuration. As an
example, finagle-core would have a
resources/com/twitter/toggles/configs/com.twitter.finagle.json
and service
owners can customize toggles via
resources/com/twitter/toggles/configs/com.twitter.finagle-service.json
.
The JSON files also support optional environment-specific overrides via
files that are examined before the non-environment-specific configs.
These environment-specific configs must be placed at
resources/com/twitter/toggles/configs/com.twitter.finagle-$environment.json
or resources/com/twitter/toggles/configs/com.twitter.finagle-service-$environment.json
where the environment
from com.twitter.finagle.server.ServerInfo$.apply is used to determine which
one to load.
A
ServiceLoadedToggleMap
is a ToggleMap that uses util-app's service loading mechanism (seecom.twitter.app.LoadService
) to be loaded.StandardToggleMap