[FEATURE] Implement multi-provider · Issue #511 · open-feature/python-sdk · GitHub
Skip to content

[FEATURE] Implement multi-provider #511

Open

Description

@toddbaert

The mutliprovider needs to be implemented in Python. Instead of being added to the contrib repo, these are now to be added directly into the SDK (similar to the in-memory providers).

See full spec here: https://openfeature.dev/specification/appendix-a/#multi-provider

See implementations in JS, Go.

Activity

  1. added a commit that references this issue on Feb 21, 2026
    f558192
  2. vikasrao23 commented on Feb 21, 2026

    @vikasrao23

    Hi! 👋

    I've implemented the Multi-Provider in PR #566.

    What's included

    • MultiProvider class - wraps multiple providers into one
    • FirstMatchStrategy - sequential evaluation (stops at first success)
    • EvaluationStrategy protocol - for custom strategies
    • Provider name uniqueness - auto-generates unique names when needed
    • Parallel initialization - all providers init concurrently
    • Comprehensive tests - all flag types, fallback behavior, error handling

    Example

    from openfeature import api
    from openfeature.provider import MultiProvider, ProviderEntry
    
    multi = MultiProvider([
        ProviderEntry(primary_provider, name="primary"),
        ProviderEntry(fallback_provider, name="fallback")
    ])
    
    api.set_provider(multi)

    The implementation follows the OpenFeature spec and uses the JS/Go implementations as references.

    Future work (suggested for follow-ups)

    • Status aggregation (tracking READY/ERROR/FATAL states)
    • Event re-emission to SDK
    • Additional evaluation strategies (parallel mode, custom aggregation)
    • Fully async evaluation

    Let me know if any adjustments are needed!

  3. added 3 commits that reference this issue on Mar 6, 2026
    7bb6ef8
    1bed536
    c8d1e8d
  4. added 6 commits that reference this issue on Mar 16, 2026
    8508c6f
    10555fe
    a09284c
    48d1070
    762b743
    91ff7dc
  5. added 3 commits that reference this issue on May 8, 2026
    9a0c6ff
    bb561a9
    1befe9b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions