Simple Feature Flagging with Bandiera
Feature flagging (also known as feature toggles, feature switches, feature flippers etc.) is a development practice that allows teams to decouple code release from feature release, and is something that we’re big fans of, and have been practicing here for the last few years.
For more information on feature flagging and how useful the practice can be, see these notes:
Today we’re open sourcing our in-house feature flagging service, and all of it’s client code - we call it Bandiera. We use it to enable us to deploy our application code, and turn on new features as and when we’re ready - entirely outside of the deployment cycle.
You can see a demo instance of Bandiera in action at http://bandiera-demo.herokuapp.com/. Feel free to add new features/groups and play about - the instance will be reverted to a default state every hour.
Bandiera is a very simple ruby application that requires a MySQL or PostgreSQL database backend. You can find details on how to run it here:
Alternatively you can quickly deploy it to Heroku using the “Deploy to Heroku” button on the repo homepage.
##Using Bandiera in Your Applications
Once you have access to a Bandiera server, you’ll need a client library to talk to it. We’ve written libraries in the following languages (the ones we use) but welcome contributions for other languages:
- Ruby - https://github.com/nature/bandiera-client-ruby
- Node.js - https://github.com/nature/bandiera-client-node
- PHP - https://github.com/nature/bandiera-client-php
Please see the README’s within the each project for more information on how to use the client.
We welcome contributions in the form of pull requests and issues.
If you want to hack on the code, you can clone the git repo:
Then check out the getting started guide in the repo.
Please ensure that you have adhered to the contribution guidelines before submitting any pull requests.
Find this post useful, or want to discuss some of the topics?
About The Authors
Darren OakleyVisit Darren's personal website and blog