open-feature / open-feature/flagd

[DOCS] ADR for evaluation details

Open
#1,769 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
997
Forks
136
Avg merge
4d 8h
Merged PRs (30d)
11

Description

We need to add a retrospective ADR for the evaluation details based on the evaluation state.

It should be covered in an ADR, but can probably be reduced to a single comprehensive mermaid flow-chart, which covers how the evaluation details should be defined based on the evaluation flow. Particularly, the REASON should be captured:

  • when a variant is defined, and no or empty targeting is specified, the REASON=STATIC
  • when a targeting rule returned a variant, the REASON=TARGETING_MATCH
  • when a targeting rule returns null, the REASON=DEFAULT and the defaultVariant is returned
  • when there's an error in evaluation, REASON=ERROR and ERROR_CODE={some-error-code}
  • when a value is returned from CACHE, REASON=CACHE see caching details here; keep in mind this is only relevant for RPC mode
  • all error code behavior: PROVIDER_NOT_READY, FLAG_NOT_FOUND etc, and precisely what flows and states result in which errors

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the evaluation flow, including variant definition, targeting results, default fallback, errors, and RPC-mode cache behavior described in the issue. Use the linked caching details and enumerate the stated error codes and resulting states. Done means an ADR with a single comprehensive Mermaid flowchart covering each evaluation-detail and error path.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.