Hobknob
The simple, distributed feature toggle framework
Ryan Tomlinson / @ryantomlinson
Why feature toggling?
Branching Merging is painful
Graceful degradation (MTTR)
Decouple deployments (Phased rollout)
"Architecture"
The Dashboard
Features
Authentication support (using OAuth)
Authentication via ACL's
Auditing
Configurable session/logging
The Clients
- Clients for .NET, Java, Node.js, Go
- Fault tolerant
- Simple
Client installation/usage
$ npm install hobknob-client-nodejs --save
var Client = require('hobknob-client-nodejs');
var client = new Client("application-name", {
etcdHost: "127.0.0.1",
etcdPort: 4001,
cacheIntervalMs: 60000
});
var isFeatureToggle1Enabled = client.getOrDefault('myFeatureToggle', false);
A bit about etcd
$ curl -L http://127.0.0.1:2379/v2/keys/mykey -XPUT -d value="this is awesome"
$ curl -L http://127.0.0.1:2379/v2/keys/mykey