open-feature / open-feature/spec
Multi Provider for OpenFeature
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 1.3k
- Forks
- 58
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 2
Description
Overview
A multi provider acts as a unified abstraction layer, allowing developers to consolidate feature flag access through a single API. With a multi provider, developers can simultaneously support multiple providers, making it easier to migrate between them.
Requirements
### Tasks
- [ ] Define a name for the provider
- [ ] Document supported scenarios
- [ ] Create a sequence diagram describing the data flow of each scenario
- [ ] Implement the provider in multiple languages
- [ ] Document the requirements in the OpenFeature spec
Resources
Ideas
- Flag metadata could be used to understand what provider was used to resolve the flag value
- Debug logging could be offloaded to an optional hook
- Extend appendix-a to include a section on the meta provider
- Leverage the evaluation details returned by the provider.
Pseudo code
OpenFeature.setProvider(
new MetaProvider([
new EnvVarProvider(),
new DbProvider(),
new NextGenProvider3000(),
])
)
Questions
- Should the meta provider live in the SDK or the contribs repo?
- Can the meta provider support provider hooks?
- What strategies should be supported out of the box?
- How should we handle provider events?
Prior art
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing appendix-a, the evaluation details section, and the prior-art pull requests in the issue. Clarify the provider name, supported scenarios, strategies, hooks, and event behavior before defining the sequence diagrams and implementation scope. Done means the requirements are documented in the OpenFeature spec and the provider is implemented in the required languages.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, documentation
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100