Skip to content

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

Merged
keelerm84 merged 2 commits into
feat/10.xfrom
mk/SDK-3436/require-update-sink
Nov 5, 2026
Merged

keelerm84 merged 2 commits 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 polling, streaming, and file data sources (sync and async) no longer fall back to writing directly to the feature store when config.data_source_update_sink is missing. That fallback bypassed data-source status updates and flag-change notifications. Each source now resolves the sink once at construction via require_update_sink, which raises ValueError if it is unset; successful paths always call init, upsert, delete, and update_status on the sink without optional checks.

LDClient._make_update_processor is removed; update-processor selection stays on FDv1._make_update_processor (and the async data system equivalent), which always attaches the sink to the config before building a processor.

Tests use with_update_sink / with_async_update_sink to mirror production wiring, plus constructor tests that assert the new failure mode.

Reviewed by Cursor Bugbot for commit 8d2f493. 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
…ire-update-sink

# Conflicts:
#	ldclient/testing/mock_async_components.py
@keelerm84
keelerm84 merged commit 451f15a into feat/10.x Nov 5, 2026
16 checks passed
@keelerm84
keelerm84 deleted the mk/SDK-3436/require-update-sink branch November 5, 2026 12:58
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