The Principal Dev – Masterclass for Tech Leads

The Principal Dev – Masterclass for Tech LeadsJuly 17-18

Join

Superposition

GitHub License Dynamic TOML Badge GitHub Release Date GitHub Actions Workflow Status X (formerly Twitter) Follow Discord badge

Superposition is a configuration and experimentation management platform that allows software teams to manage their configurations safely and allows them to run multi-variate experiments on those configurations. Superposition places a strong emphasis on safety of configuration changes. It does this by the following:

This comprehensive setup gives applications a robust platform to roll-out changes safely.

Getting started

Setup the server

The fastest way to setup Superposition is to use the following docker command which runs Superposition and its dependencies (a Postgres database) locally:

docker run -p 8080:8080 ghcr.io/juspay/superposition-demo:latest

Once you run this command, you can access the Superposition admin interface at localhost:8080. Play around to understand Superposition better, then dive into the documentation below!

Integrating Superposition in your application

Once you have played with the Superposition admin interface, you may want to consume the configuration in your application. Superposition is OpenFeature compatible. OpenFeature allows your application code to remain agnostic of the underlying configuration/feature-flag platform (like open telemetry for telemetry). The quick start guide has details on how to integrate and consume configurations (setup in Superposition) in your application using the Superposition Open Feature provider.

Superposition Clients

Superposition comes with a variety of clients supported in multiple programming languages to interact with the Superposition platform.

  1. sdk - this library contains methods to interact with the control plane of Superposition to manage configurations and experiments. In short, all APIs supported by the Superposition platform can be invoked using the sdk (built using AWS' Smithy IDL).
  2. provider (or open-feature-provider) - this open feature compatible library is meant to be used by the applications that consume configurations hosted in Superposition. This has support for in-memory-caching and period polling based refresh of configuration in the application.

The following matrix contains the languages in which the above client libraries are available:

Language sdk provider
Rust Crates.io Version Crates.io Version
Javascript NPM Version NPM Version
Python PyPI - Version PyPI - Version
Java Maven Central Version Maven Central Version
Haskell WIP WIP
Go TBD TBD

Deeper dive into Superposition

For a deeper dive into the under-pinnings of Superposition, development setup, API docs - you can go over the following links.

  1. Conceptual docs on two foundational services of Superposition:
  2. Development setup
  3. API Ref (TODO:)

Applications using Superposition

Superposition comes as a shot in the arm for any application that needs safe and flexible configurability. We have built applications that leverage the Superposition across different parts of the software stack - frontend, backend, infra and storage.

Key highlights

Email us

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.