Git Product home page Git Product logo

dials's Introduction

Dials

Dials is a java based 'Feature Toggle' library that allows for runtime decision making based on different sets of criteria. Dials allows for a combination of filters to be defined for a given feature, allowing for more customizable decision making.

Do you want your feature to only be active on business days, and during business hours? Applying a DayOfWeek filter and a TimeWindow filter would allow you to do just that.

Want to run a pilot for 10% of traffic during a 1 week period? Apply a Percentage or SeededPercentage filter and a DateRange filter.

As a part of the decision making process, Dials will maintain an execution context providing relevant information about what happened. You may see that the static data needed to run the filter was unable to apply because it is invalid. Or that it is the DateRange filter that is failing each run.

What's the deal with Dials?

Dials allows for more than just a simple yes or no when your features are executing. When a feature executes, the client can register back to the system that it has encountered an errored state. With this, we can calculate the rate of success for a feature. By defining an 'Increase Threshold' and a 'Decrease Threshold', a given filter can automatically be dialed up or down based on the configuration provided, thus the name Dials. This functionality is only currently implemented for percentage based filters, but will be expanded in the near future. Additionally, the 'Killswitch' will live alongside this, representing the threshold for turning the feature off completely.

Currently Dials is in its infancy, so many areas are currently limited in scope, but with plans to expand.

Some current ideas are:

  • More filter options
  • More dialable filters
  • Better dial configuration and killswitch functionality
  • Providing a dropwizard service implementation for distrubuted systems
  • A simple interface for feature creation
  • Additional context recorders
  • Additional data stores

dials's People

Contributors

brettduclos avatar zarry avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.