Limit new features to a subset of your users

(written by lawrence krubner, however indented passages are often quotes). You can contact lawrence at: lawrence@krubner.com, or follow me on Twitter.

Inspired by the Ruby gem “Rollout”, Shoutout offers user buckets on which you can test new features:

Storage

Unlike rollout, shoutout is completely storage agnostic. You’ll have to implement your own storage backend, which implements ShoutoutStorage. The storage protocol has two functions, read-from-storage, and write-to-storage, both of which should be simple enough to implement. Both deal purely with serialized strings, and string keys, shoutout does the serialization logic itself.

The library provides an in memory store (used for testing) that you could look at for an example.

There is also an example store that uses apache curator’s zookeeper NodeCache as a storage backend – so feature checks are purely in memory lookups, but backed by persistent, CP storage. That’s located here for now: shoutout zookeeper store

Namespacing

Shoutout separates its keys from other keys in the data store by prefixing all keys with shoutout_feature

Various storages have namespacing faciltiies for prefixing keys as well – if you need further namespacing, be sure to use those.

Post external references

  1. 1
    https://github.com/yeller/shoutout
Source