Skip to content

Conversation

@YassinNouh21
Copy link
Contributor

What this PR does / why we need it:

This PR fixes the import error when using HybridOnlineStore with the shorthand type configuration in feature_store.yaml.

The Problem:
When users configure the HybridOnlineStore using type: hybrid_online_store.HybridOnlineStore (as shown in the documentation), they get the error:

FeastModuleImportError: Could not import module 'hybrid_online_store' while attempting to load class 'HybridOnlineStoreConfig'

Root Causes:

  1. Missing __init__.py in the hybrid_online_store package directory
  2. No "hybrid" shorthand entry in ONLINE_STORE_CLASS_FOR_TYPE mapping (unlike all other online stores like redis, bigtable, cassandra, etc.)
  3. The HybridOnlineStoreConfig.type used non-standard Literal values instead of the shorthand pattern

Changes:

  • Add missing __init__.py to hybrid_online_store package
  • Add "hybrid" entry to ONLINE_STORE_CLASS_FOR_TYPE in repo_config.py
  • Update HybridOnlineStoreConfig.type Literal to use standard "hybrid" shorthand
  • Update documentation to use type: hybrid

After this fix, users can configure:

online_store:
  type: hybrid
  routing_tag: team
  online_stores:
    - type: bigtable
      conf: ...

Which issue(s) this PR fixes:

Fixes #5630

Misc

  • All unit tests pass (make lint-python, make format-python, pytest)
  • Tested YAML config loading with the new type: hybrid shorthand

This fixes the import error when using HybridOnlineStore with the
shorthand type configuration in feature_store.yaml.

Changes:
- Add missing __init__.py to hybrid_online_store package
- Add "hybrid" entry to ONLINE_STORE_CLASS_FOR_TYPE in repo_config.py
- Update HybridOnlineStoreConfig type Literal to use standard "hybrid" shorthand
- Update documentation to use type: hybrid

Signed-off-by: yassinnouh21 <[email protected]>
@YassinNouh21 YassinNouh21 force-pushed the fix/hybrid-online-store-import-5630 branch 3 times, most recently from f41ab82 to fc6b866 Compare January 4, 2026 19:18
The data source types test validates that Python ONLINE_STORE_CLASS_FOR_TYPE
matches the Go operator's ValidOnlineStoreDBStorePersistenceTypes. This adds
the hybrid type to both v1 and v1alpha1 API versions.

Signed-off-by: yassinnouh21 <[email protected]>
@YassinNouh21 YassinNouh21 force-pushed the fix/hybrid-online-store-import-5630 branch from fc6b866 to c6a858c Compare January 4, 2026 19:22
@YassinNouh21
Copy link
Contributor Author

@franciscojavierarceo ALL done we are good to go

@franciscojavierarceo franciscojavierarceo merged commit 678589b into feast-dev:master Jan 5, 2026
20 checks passed
YassinNouh21 added a commit to YassinNouh21/feast that referenced this pull request Jan 10, 2026
…east-dev#5810)

* fix: Add hybrid online store to ONLINE_STORE_CLASS_FOR_TYPE mapping

This fixes the import error when using HybridOnlineStore with the
shorthand type configuration in feature_store.yaml.

Changes:
- Add missing __init__.py to hybrid_online_store package
- Add "hybrid" entry to ONLINE_STORE_CLASS_FOR_TYPE in repo_config.py
- Update HybridOnlineStoreConfig type Literal to use standard "hybrid" shorthand
- Update documentation to use type: hybrid

Signed-off-by: yassinnouh21 <[email protected]>

* fix: Add hybrid to Go operator ValidOnlineStoreDBStorePersistenceTypes

The data source types test validates that Python ONLINE_STORE_CLASS_FOR_TYPE
matches the Go operator's ValidOnlineStoreDBStorePersistenceTypes. This adds
the hybrid type to both v1 and v1alpha1 API versions.

Signed-off-by: yassinnouh21 <[email protected]>

---------

Signed-off-by: yassinnouh21 <[email protected]>
franciscojavierarceo pushed a commit that referenced this pull request Jan 16, 2026
# [0.59.0](v0.58.0...v0.59.0) (2026-01-16)

### Bug Fixes

* Add get_table_query_string_with_alias() for PostgreSQL subquery aliasing ([#5811](#5811)) ([11122ce](11122ce))
* Add hybrid online store to ONLINE_STORE_CLASS_FOR_TYPE mapping ([#5810](#5810)) ([678589b](678589b))
* Add possibility to overwrite send_receive_timeout for clickhouse offline store ([#5792](#5792)) ([59dbb33](59dbb33))
* Denial by default to all resources when no permissions set  ([#5663](#5663)) ([1524f1c](1524f1c))
* Make operator include full OIDC secret in repo config ([#5676](#5676)) ([#5809](#5809)) ([a536bc2](a536bc2))
* Populate Postgres `registry.path` during `feast init` ([#5785](#5785)) ([f293ae8](f293ae8))
* **redis:** Preserve millisecond timestamp precision for Redis online store ([#5807](#5807)) ([9e3f213](9e3f213))
* Search API to return all matching tags in matched_tags field ([#5843](#5843)) ([de37f66](de37f66))
* Spark Materialization Engine Cannot Infer Schema ([#5806](#5806)) ([58d0325](58d0325)), closes [#5594](#5594) [#5594](#5594)
* Support arro3 table schema with newer deltalake packages ([#5799](#5799)) ([103c5e9](103c5e9))
* Timestamp formatting and lakehouse-type connector for trino_offline_store. ([#5846](#5846)) ([c2ea7e9](c2ea7e9))
* Update model_validator to use instance method signature (Pydantic v2.12 deprecation) ([#5825](#5825)) ([3c10b6e](3c10b6e))

### Features

* Add dbt integration for importing models as FeatureViews ([#5827](#5827)) ([b997361](b997361)), closes [#3335](#3335) [#3335](#3335) [#3335](#3335)
* Add GCS registry store in Go feature server ([#5818](#5818)) ([1dc2be5](1dc2be5))
* Add progress bar to CLI from feast apply ([#5867](#5867)) ([ab3562b](ab3562b))
* Add RBAC blog post to website ([#5861](#5861)) ([b1844a3](b1844a3))
* Add skip_feature_view_validation parameter to FeatureStore.apply() and plan() ([#5859](#5859)) ([5482a0e](5482a0e))
* Added batching to feature server /push to offline store ([#5683](#5683)) ([#5729](#5729)) ([ce35ce6](ce35ce6))
* Enable static artifacts for feature server that can be used in Feature Transformations ([#5787](#5787)) ([edefc3f](edefc3f))
* Improve lambda materialization engine ([#5829](#5829)) ([f6116f9](f6116f9))
* Offline Store historical features retrieval based on datetime range in Ray ([#5738](#5738)) ([e484c12](e484c12))
* Read, Save docs and chat fixes ([#5865](#5865)) ([2081b55](2081b55))
* Resolve pyarrow >21 installation with ibis-framework ([#5847](#5847)) ([8b9bb50](8b9bb50))
* Support staging for spark materialization ([#5671](#5671)) ([#5797](#5797)) ([5b787af](5b787af))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Could not import module 'hybrid_online_store'

2 participants