Skip to content

feat: Add Big Segments support to the server contract-test service#554

Merged
beekld merged 2 commits into
mainfrom
beeklimt/SDK-2369
Jun 18, 2026
Merged

feat: Add Big Segments support to the server contract-test service#554
beekld merged 2 commits into
mainfrom
beeklimt/SDK-2369

Conversation

@beekld

@beekld beekld commented Jun 12, 2026

Copy link
Copy Markdown
Contributor

Add Big Segments support to the server contract-test service

Lets the shared contract-test harness run its Big Segments suite against the C++ server SDK.

What's in

  • ContractTestBigSegmentStore: an IBigSegmentStore that delegates
    getMembership/getMetadata to the harness over HTTP (synchronous
    request/response, mirroring ContractTestHook's callback wiring).
  • A bigSegments config block in the contract-tests data model ->
    ConfigBuilder::BigSegments(...) in the entity manager.
  • The getBigSegmentStoreStatus command -> Client::BigSegmentStoreStatus().
  • big-segments added to the advertised capabilities.

No SDK changes here -- bigSegmentsStatus already serializes into the evaluation
reason, so it flows through the existing evaluate path.

Design notes

  • This mirrors how the Java SDK covers Big Segments end-to-end. The store
    implementations themselves are tested against real Redis/DynamoDB at the
    source-library level separately.

Testing

  • The harness Big Segments suite passes against the built service (40 ran,
    13 skipped, 0 failed).
  • server-tests builds and advertises big-segments.
  • Full server-sdk unit suite green.

Note

Low Risk
Changes are confined to contract-test infrastructure and data-model JSON types; production SDK behavior is unchanged.

Overview
Adds Big Segments coverage to the C++ server contract-test harness so the shared suite can drive the server SDK end-to-end.

A new ContractTestBigSegmentStore implements IBigSegmentStore by synchronously POSTing to harness callback paths (/getMembership, /getMetadata), similar in spirit to ContractTestHook but with request/response semantics required by the store API.

The contract data model gains ConfigBigSegmentsParams on ConfigParams, EntityManager wires it through BigSegmentsBuilder (cache, poll interval, stale-after), and ClientEntity handles the new getBigSegmentStoreStatus command via Client::BigSegmentStoreStatus(). The service advertises the big-segments capability.

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

@beekld beekld force-pushed the beeklimt/SDK-2368 branch from 53139f4 to 5836643 Compare June 12, 2026 19:09
@beekld beekld force-pushed the beeklimt/SDK-2369 branch from 30a59b0 to 2ac1d30 Compare June 12, 2026 19:09
@beekld beekld force-pushed the beeklimt/SDK-2368 branch from 5836643 to d9c101f Compare June 15, 2026 23:21
@beekld beekld force-pushed the beeklimt/SDK-2369 branch from 2ac1d30 to dd3d569 Compare June 15, 2026 23:21
@beekld beekld force-pushed the beeklimt/SDK-2368 branch from d9c101f to 8ff748b Compare June 15, 2026 23:25
@beekld beekld force-pushed the beeklimt/SDK-2369 branch from dd3d569 to 9bdf697 Compare June 15, 2026 23:25
@beekld beekld force-pushed the beeklimt/SDK-2368 branch from 8ff748b to 11902fa Compare June 16, 2026 18:29
@beekld beekld force-pushed the beeklimt/SDK-2369 branch from 9bdf697 to c36597c Compare June 16, 2026 18:29
Base automatically changed from beeklimt/SDK-2368 to main June 16, 2026 19:06
@beekld beekld force-pushed the beeklimt/SDK-2369 branch from c36597c to 410f7e6 Compare June 16, 2026 19:33
@beekld beekld marked this pull request as ready for review June 16, 2026 19:35
@beekld beekld requested a review from a team as a code owner June 16, 2026 19:35
@beekld beekld merged commit 455dacb into main Jun 18, 2026
47 checks passed
@beekld beekld deleted the beeklimt/SDK-2369 branch June 18, 2026 00:13
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.

2 participants