Local evaluation silently drops identity overrides on large environments

Open
#132 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
58/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
php
Domain
api, backend

Research direction

Start with the PHP client's local-evaluation environment-fetching path and compare it with the reference implementation in Flagsmith/flagsmith-nodejs-client#205. Verify that all response pages are ingested and that refresh duration warnings name both durations; done means local and remote identity-override results match at every environment size without changing single-page behavior.

Written by the indexing model from the issue text.

Description

Server-side SDKs cache the environment document for local evaluation, but the PHP client today only ingests the first response page. For environments large enough to span multiple pages — typically those with many identity overrides — every override beyond the first page is missing from the local cache. Affected identities are evaluated against an incomplete environment and may receive flags that disagree with remote evaluation, with no error surfaced to the operator.

Acceptance criteria

  • Local evaluation returns the same identity-override results as remote evaluation regardless of how large the environment is.
  • Existing users on environments small enough to fit a single page see no behaviour or configuration change.
  • When fetching a full environment takes longer than the configured refresh interval, the SDK logs a warning naming both durations, so the operator knows to raise the interval or trim the environment.

Parent: Flagsmith/flagsmith#4664
Reference implementation: Flagsmith/flagsmith-nodejs-client#205

Dominant language
PHP
Stars
18
Forks
13
Avg merge
28m
Merged PRs (30d)
1

Contributor guide

No contributing guide indexed for this repository

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.

More from Flagsmith/flagsmith-php-client

All issues in Flagsmith/flagsmith-php-client

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.