Skip to content

Conversation

@keelerm84
Copy link
Member

@keelerm84 keelerm84 commented Oct 28, 2025

Note

Introduces FDv2 data system configuration and robust synchronizer lifecycle (start/stop), integrates SSE streaming with payload filter, implements an in-memory feature store, and updates tests and contract client accordingly.

  • FDv2/Data System:
    • Add Synchronizer.stop() to interface and implement stop/lifecycle management in StreamingDataSource and PollingDataSource.
    • Enhance FDv2 to track/stop the active synchronizer safely with locks; ensure threads shut down cleanly.
    • Add datasystem.config builders (polling_ds_builder, streaming_ds_builder), expose fdv1_fallback_synchronizer in config.
  • Streaming:
    • Switch to ld_eventsource.SSEClient; include payload filter in stream URI.
    • Handle stream errors by interrupting/closing SSE; stop on unrecoverable errors; ensure closure on exit.
  • Polling:
    • Add stoppable sync loop with _stop flag and stop() method.
  • Store:
    • Implement thread-safe InMemoryFeatureStore with basic CRUD, init, and diagnostics; integrate with Store.
  • Contract tests:
    • Support FDv2 dataSystem config (initializers/synchronizers, payloadFilter) in client_entity.py.
  • Tests:
    • Update streaming synchronizer tests for new SSE client usage and stop/interrupt behavior.

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

@keelerm84 keelerm84 requested a review from a team as a code owner October 28, 2025 16:06
@keelerm84 keelerm84 force-pushed the mk/sdk-1512/fdv2-default-config-dep branch 2 times, most recently from 8ccfd3e to 77b1e82 Compare October 30, 2025 20:16
Base automatically changed from mk/sdk-1512/fdv2-default-config-dep to feat/fdv2 October 30, 2025 20:40
@keelerm84 keelerm84 force-pushed the mk/sdk-1513/contract-tests branch from e55dca5 to 9c3cd49 Compare October 30, 2025 20:41
cursor[bot]

This comment was marked as outdated.

Stops the streaming synchronizer, closing any open connections.
"""
log.info("Stopping StreamingUpdateProcessor")
self._running = False
Copy link
Member

Choose a reason for hiding this comment

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

I assume no threading concerns in this implementation?

Copy link
Member Author

Choose a reason for hiding this comment

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

I don't believe there should be. The data system starts it's own thread which creates and destroys synchronizers synchronously.

@keelerm84 keelerm84 requested a review from kinyoklion November 4, 2025 13:32
@kinyoklion kinyoklion merged commit 8e55645 into feat/fdv2 Nov 5, 2025
14 checks passed
@kinyoklion kinyoklion deleted the mk/sdk-1513/contract-tests branch November 5, 2025 17:41
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