Comparison
Feature flagvsLate binding
Feature flag
you ship the code turned off, switch it on for yourself, then for one percent, then for everyone.
A runtime switch controlling whether a code path is active. It separates release from deploy, enables gradual rollout, and gives you an instant off switch that does not require a deploy. Flags are debt: every one is a branch to test and understand, so each needs an owner and a removal date.
Full entry →Late binding
which implementation runs was decided when the program started, from a config value, not when it was compiled.
Deferring the decision of which code a call reaches until as late as possible — runtime rather than compile time. It is the property that makes plugins, hot-swappable strategies and configuration-driven implementations possible, and it is what you give up in exchange when you choose the safety of a direct call. Every technique in this cluster is a way of choosing where on that spectrum a particular decision should sit.
Full entry →