Skip to content

feat: Add the FDv2 transactional store and change-set translation - #186

Open
beekld wants to merge 4 commits into
mainfrom
bklimt/SDK-2691/fdv2-transactional-store
Open

feat: Add the FDv2 transactional store and change-set translation#186
beekld wants to merge 4 commits into
mainfrom
bklimt/SDK-2691/fdv2-transactional-store

Conversation

@beekld

@beekld beekld commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Summary

FDv2 delivers data as change sets that must be applied to the store as atomic batches. This adds the write path for that:

  • A TransactionalDataStore trait, parallel to DataStore, whose apply method applies a change set to the store as a single atomic batch, with an implementation for the in-memory store.
  • Translation from wire change sets into typed store change sets, deserializing each object into a Flag or Segment.

Unknown object kinds in a change set are logged and skipped rather than silently ignored, matching the C++ and Java SDKs. The spec calls for silently ignoring them.


Note

Overview
Adds the FDv2 → store write path: wire change sets are converted into typed ItemChange batches (Flag/Segment puts and tombstone deletes), then applied atomically via a new TransactionalDataStore trait (implemented on InMemoryDataStore).

apply honors None (no-op), Full (clear flags/segments then apply changes), and Partial (merge changes only). Unknown put/delete kinds are warned and skipped; bad flag/segment JSON fails translation with serde_json::Error.

Exposes fdv2::model and shared ChangeSetKind so stores and FDv2 share types; trait/orchestrator wiring is marked for a follow-up phase.

Reviewed by Cursor Bugbot for commit 9910905. Bugbot is set up for automated code reviews on this repo. Configure here.

Base automatically changed from bklimt/SDK-2754/data-system-trait to main August 10, 2026 18:41
@beekld
beekld force-pushed the bklimt/SDK-2691/fdv2-transactional-store branch from 63b58f8 to ead1f7d Compare August 10, 2026 18:41
@beekld
beekld marked this pull request as ready for review August 10, 2026 18:41
@beekld
beekld requested a review from a team as a code owner August 10, 2026 18:41
@beekld
beekld force-pushed the bklimt/SDK-2691/fdv2-transactional-store branch from ead1f7d to 9910905 Compare August 10, 2026 18:46
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.

1 participant