Skip to content

outrunengineer/togglr

Repository files navigation

Togglr is an open source, feature flagging application written by H-E-B. Togglr consists of 5 base components.

  • API - Spring Boot application to manage all interactions with Togglr DB and provide base functionality.
  • Client - Spring Boot client written to abstract usage of The Togglr API. Consumed as a JAR.
  • Mysql DB - Simple docker container with init scripts. Meant to be replaced with a more permanent solution in production.
  • UI - Nuxt/VueJS application for interacting with API and management of Feature Flags
  • Redis - Redis base image pod used for Feature Flag caching.

Motivation

In order to achieve true CI/CD, feature flags play a major component. The ability for us to release production features on a per push basis enables quick turnaround. In addition to moving fast, we are able to move safely. Rather than issuing a full rollback for a feature, a quick toggle off is all that is typically needed.

Screenshots

Include logo/demo screenshot etc.

Built with

Features

  • Dynamic flag rules
  • Abstracted client library
  • Redis caching
  • Webhook updates

Sample Request

Request to /features/active

{
  "appId" : 2,
  "configs" : {
    "users" : "user1"
  }
}

Response

{
  "availableFeatures": [
    {
      "id": 5,
      "descr": "feature1",
      "appId": 2
    }
  ]
}

Running

In order to run locally, Docker Compose is required. In the base git repo run docker-compose up --build

For production we recommend running in a Kubernetes environment. Docker images will need to be built for UI and API. Client will be consumed as a JAR in your API if used. Mysql DB should be moved to a managed DB but a Mysql pod can be used with risk. Redis can be consumed as a pod instance.

License

Apache-2.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published