Skip to content

Conversation

@keelerm84
Copy link
Member

@keelerm84 keelerm84 commented Nov 4, 2025

Note

Introduce ReadOnlyStore and refactor FDv2 store/application logic to use an in-memory read-only active store with set_basis/apply_delta, persisting deltas via upserts (including tombstones); update client, interfaces, protocol, tests, and bump launchdarkly-eventsource.

  • Data system/store (FDv2):
    • Add in-memory InMemoryFeatureStore implementing ReadOnlyStore with set_basis and apply_delta.
    • Refactor Store to:
      • Convert Change lists to collections; on TRANSFER_FULL call set_basis, on TRANSFER_CHANGES call apply_delta.
      • Persist deltas via upsert (including DELETE as tombstone objects) when writable; remove direct delete calls.
      • Track selector, dependency updates, and emit flag change events from computed affected items.
    • Adjust FeatureStoreClientWrapper/persistence wiring; get_active_store now returns ReadOnlyStore.
  • Client/FDv1/FDv2:
    • Expose ReadOnlyStore via DataSystem.store; client/evaluator now read from ReadOnlyStore.
    • Wire diagnostic accumulator; minor logging tweaks.
  • Interfaces:
    • Add ReadOnlyStore protocol and update DataSystem/implementations to return it.
  • Protocol:
    • Narrow Change.object type to Optional[dict].
  • Dependency tracking:
    • Ignore items marked deleted when computing dependencies.
  • Tests:
    • Update persistence tests to expect upserts for deletes and new collection typings.
  • Dependencies:
    • Bump launchdarkly-eventsource to >=1.4.0,<2.0.0.

Written by Cursor Bugbot for commit 8bcddb1. This will update automatically on new commits. Configure here.

@keelerm84 keelerm84 requested a review from a team as a code owner November 4, 2025 13:36
@keelerm84 keelerm84 force-pushed the mk/sdk-1521/selector-threading branch from bf82505 to a6b2b3d Compare November 5, 2025 18:32
Base automatically changed from mk/sdk-1521/selector-threading to feat/fdv2 November 5, 2025 18:40
semver = ">=2.10.2"
urllib3 = ">=1.26.0,<3"
launchdarkly-eventsource = ">=1.2.4,<2.0.0"
launchdarkly-eventsource = ">=1.4.0,<2.0.0"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this intended to be in this PR? Or rebase problem?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should have been in a previously merged PR. Not sure how that was missed.

@keelerm84 keelerm84 merged commit cde2f68 into feat/fdv2 Nov 7, 2025
24 of 25 checks passed
@keelerm84 keelerm84 deleted the mk/sdk-1410/atomic branch November 7, 2025 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants