May 2024 Rustacean meetup

May 2024 Rustacean meetup

Kartik

@datron

Introducing Superposition - a flexible, safe and powerful Open Source Configuration Management System

Submitted Apr 23, 2024

Most non-trivial applications need a robust and flexible configuration system. Such a system becomes all the more important when the same feature needs to behave differently for different users. At Juspay, we needed a configuration system with the following properties:

  • First, it should be flexible, allowing teams to make changes quickly without application deployment.
  • Second, it should be Safe - ensuring that the value provided for a configuration is type correct, and the rollout of such a change is staggered.

We looked around for off-the-shelf software and did not find anything that met these requirements, so we built Superposition.

Superposition is a context-based configuration management system designed to facilitate safe and flexible rollout of config changes.

This is enabled by two key components of Superposition.

  • Context Aware Config (CAC) - Lets you do granular configuration based on contextual data.
  • Experimentation - Lets you do A/B configuration deployment, allowing controlled rollout and rollback mechanisms.

From discussions with multiple teams, we feel our requirements for a configuration system are universal. Teams inside Juspay like Juspay Portal, Hyper SDK and Namma Yatri have started to leverage Superposition to manage their complex configuration use-cases in production.

We have open sourced Superposition recently
https://github.com/juspay/superposition

Key highlights

  • 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

Comments

{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hosted by

A community of rust-lang contributors and end-users from Bangalore. We also have presence on the following telegram channels https://t.me/RustIndia https://t.me/keralars https://t.me/fpncr Twitter handle: https://twitter.com/rustlangin more