Overview

Bipolar is a feature toggle micro service, a bit similar to django-gargoyle, but with a deep difference: while django-gargoyle is mostly a tool to switch features state on Django-based projects, Bipolar is a micro service to be used remotely by any language or framework, backend, frontend or mobile.

That turns Bipolar a better tool to use in micro-service based architectures, specially when there more than one language and framework in the whole system and different frontend approaches.

Content

First understanding

Bipolar is a project that offers feature toggle pattern under a different perspective to the existing options - it is language-agnostic, under a micro-service-oriented approach.

That means it doesn’t matters if your project is written in Python, Ruby, Java or any other, it doesn’t mean if you have many different components using different frameworks, etc. all is managed in one single point, the Bipolar Server.

Basic flow

Quick flow chart on requests from consumer (your app) to Bipolar API:

https://raw.githubusercontent.com/marinho/bipolar-server/master/docs/images/Flow1.png

How the applications request current permissions state to Bipolar

https://raw.githubusercontent.com/marinho/bipolar-server/master/docs/images/Flow2.png

The other way around: when you change features and/or qualifiers and their respective permissions in Bipolar Server.

Basic entities

https://raw.githubusercontent.com/marinho/bipolar-server/master/docs/images/Entities.png

Clients

Python Client

Still with poor documentation but well covered by tests and pretty simple for understanding. Just take a look at the tests and you must be ok.

https://github.com/marinho/bipolar-python-client

ember-features

This is not exactly a Bipolar client but it can be helpful to implement Feature Toggle in EmberJS based applications. To connect ember-features with Bipolar Server you must listen to a Pusher account via websocket and call App.Features.update(). Or you can publish your own URL that requests permissons to Bipolar Server and your JavaScript requests it via Ajax call.

https://github.com/marinho/ember-features

Dependencies

Bipolar is written based on the following third party software:

  • Python 2.7
  • Django 1.6
  • django-tastypie
  • pusher
  • jellyfish
  • south
  • requests
  • responses

License

Free and Open Source software based on Gnu Public License v3.

Author

Marinho Brandao <name at gmail.com>

Released at first for T Dispatch - https://tdispatch.com

Indices and tables