Superposition is a cloud configuration and experimentation management platform that allows software teams to manage their configuration via a central location, run multi-variate experiments for different configuration values and evaluate results of these experiments and conclude them accordingly.
The Superposition platform comes with three components:
- Context-Aware-Configuration - a flexible configuration management system that supports contextual overrides for configuration keys
- Experimentation - a experimentation management system that allows supplying different configuration values to equal-sized cohorts (facilitating A/B testing)
- Metrics - a metrics sub-system that interacts with analytics backends to provide supporting metrics that enable conclusions to be drawn from experiments (TBD)
The fastest way to setup superposition along with a demo-app is to use the following docker command:
docker run -d -p 8081:9090 -p 8080:8080 datron1/superposition-demo-app:latest
Once you run this command, you'll find the demo app at localhost:8081
and Superposition at localhost:8080
. Play around to understand Superposition better, then dive into the documentation below!
- Context-Aware-Configuration
- Experimentation
- Metrics
- Client Context-Aware-Configuration
- Client Experimentation
- Local setup
- Context-Aware-Configuration API Ref - Postman Collection
- Experimentation API Ref - Postman Collection
- TOML formatted Context-Aware-Configuration example
- Hitchiker's Guide to Create a New Client
- Admin UI - Out of the box administration (and tools) UI for configurations and experiments
- Rich API support - every action on the platform to manage configurations / experiments is supported with an accompanying API
- Safe configuration changes - support canary testing for releasing configuration changes using experiments
- Type/Validation support - Comprehensive type support using json-schema and custom validator function support for configuration values
- Multi-tenant support - a single deployment allows multiple tenants to manage their configurations/experiments in a completely isolated manner
- Authn/Authz support - control who can make configuration/experimentation changes