Toggle – Managing Toggle Configuration

Togle is an app designed to help track time on various projects. The tool is simple to use and allows you to easily create and share reports. The application is also able to alert you of idle periods. It can be used by people of any skill level and is ideal for freelancers.

Toggle Definitions

In computing, a toggle is a switch with two states (on or off). See the meaning of toggle in Wiktionary.

When used in a web or mobile app, toggles provide quick access to user-facing features and settings. They also help users update preferences and other information. When using toggles, it’s important to give them direct labels and use standard visual design.

For example, a toggle switch can look like a slider or have visual cues to let the user know what’s happening when they change it. You’ll also want to make sure the label clearly states what the control will do when it is in a certain state.

Managing Toggle Configuration

One of the most difficult aspects of toggle management is to ensure that changes to toggle configuration are consistent across a fleet of servers. For this reason many organizations move their toggle configuration out of static files and into a central store, often an application database.

Keeping Toggles in Line

Savvy teams view their toggle inventory as a carrying cost, and seek to keep it as low as possible. This means that they are proactive in removing feature flags that are no longer needed. Some even put “expiration dates” on their toggles, which will fail a test or otherwise cause trouble if they’re still around after the date has passed.

It is not uncommon to have a long-lived toggle, such as a permissioning toggle. This is especially true when a feature flag has a per-request toggling decision, or when a toggle configuration is dynamically overridden as part of an experiment.

Removing Toggles That Are No Longer Needed

Once a toggle has been in place for a while it may be time to remove it. This can be done with a simple task on the team’s backlog or by adding an expiration date to it. Some teams go as far as creating time bombs on their toggles, which will fail if they’re still around after the expiration date has passed.

When a toggle is no longer needed it should be removed from the codebase as soon as possible. This can be done with a simple removal task on the team’s backlog or, more commonly, by adding an expiration date to it.

In-memory Re-Configuration

When there is a need to dynamically re-configure a toggle it is usually best to do so in-memory rather than via file configuration. This makes it easier to ensure that the toggle remains consistent across the fleet of servers, and makes it a lot easier to re-deploy a new artifact into a testing environment if necessary.

Dynamic Re-Configuration can be a very sharp tool in a feature flag system, but it is always better to use it sparingly and with care. Unless your system supports runtime configuration it can be a pain to re-deploy an artifact into a testing environment, and it can also lead to a lot of wasted time when the release is ready for production. In addition, dynamic re-configuration can result in a significant amount of extra work on the build pipeline for automated tests.