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

DEMO: dashboard

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
				    

Questions?