Skip to content

refactor: Require the data source update sink in FDv1 data sources - #559

Open
keelerm84 wants to merge 1 commit into
feat/10.xfrom
mk/SDK-3436/require-update-sink
Open

keelerm84 wants to merge 1 commit into
feat/10.xfrom
mk/SDK-3436/require-update-sink

Conversation

@keelerm84

@keelerm84 keelerm84 commented Nov 2, 2026 •

Copy link
Copy Markdown
Member

Summary

The FDv1 polling, streaming and file data sources (sync and async) no longer fall back to writing straight to the feature store when config.data_source_update_sink is None. The fallback skipped data source status updates and flag change events. The FDv1 data systems always set the sink before they build a data source, so each data source now reads the sink once at construction and raises ValueError if it is missing.

This also removes the unused LDClient._make_update_processor, which the FDv1 data system replaced.


Note

Overview
FDv1 sync/async polling, streaming, and file data sources no longer fall back to writing directly to the feature store when config.data_source_update_sink is missing. sink_or_store / async_sink_or_store are replaced by require_update_sink, which fails fast at construction with ValueError if the sink is unset.

Each data source now routes all init / upsert / delete work and data source status updates through the sink only, removing scattered if sink is not None checks. The file integration drops its private store fallback helper and no longer keeps a store reference for updates.

LDClient._make_update_processor is removed; update processor selection stays on FDv1 (unchanged behavior for normal clients, which already assign the sink before building a processor). Tests gain with_update_sink / with_async_update_sink helpers and coverage that constructors reject a missing sink.

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

The FDv1 data sources no longer fall back to writing to the feature store
when config.data_source_update_sink is None. The FDv1 data systems always
set the sink before they build a data source, so the data sources now read
it once at construction and raise ValueError if it is missing.

Also remove the unused LDClient._make_update_processor, which the FDv1
data system replaced.
@keelerm84
keelerm84 requested a review from a team as a code owner November 2, 2026 20:36
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