open-feature / open-feature/flagd
[FEATURE] Scoped, Multi-project Support
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 997
- Forks
- 136
- Avg merge
- 4d 8h
- Merged PRs (30d)
- 11
Description
[FEATURE] Scoped, Multi-project Support
Background
Especially when deployed as a central service (as opposed to a sidecar) flagd might be used by multiple teams and workloads. These workloads often have completely unrelated sets of flags. It's desirable for these teams to be able to manage their sets of flags independently, and without concern for that of other teams. It's also desirable for these teams' workloads to only receive flags relevant to them. This presents two challenges with respect to flagd's current implementation:
- The selector functionality can only select sources; if all flags are sourced from the same sync-source, there's no way for clients to only receive the set of flags of interest to them.
- The schema and sources do not support multiple flags with the same key - this it's impractical for organizations' with want to use a single sync-source for delivery all their flags (ie: for multiple projects).
Proposed solutions are described in the below ADRs:
https://github.com/open-feature/flagd/blob/main/docs/architecture-decisions/duplicate-flag-keys.md
We need to implement these in the below issues:
Duplicate flag key support and flagSetId scoping
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 reading docs/architecture-decisions/duplicate-flag-keys.md and docs/architecture-decisions/decouple-flag-source-and-set.md. Then inspect the current selector, schema, and source behavior described in the issue. Done means supporting duplicate flag keys and flagSetId scoping so independent projects can manage and receive only their relevant flags.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100