Skip to content

Conversation

@iamcodingcat
Copy link
Contributor

@iamcodingcat iamcodingcat commented Jun 21, 2025

What this PR does / why we need it:

For ultimate low latency feature serving, I am using Golang api server for production environment. Moreover, a few months ago, I developed the feature that integrates s3 registry into Golang api server.(#5352 , #5336)

I am using Golang api server with redis as online store. But redis is usually for cache server and have lower SLA than DynamoDB. So I tried to integrate dynamodb as online store in Golang api server and succeed it. I refer the source code from integrating dynamodb in python sdk.

Of course, I am not writing test code but I locally finish testing about this feature. After reviewing my PR, I will soon add test code for this. please review about this for me! Thanks.

For reference, I carefully see compatibility between python and go of mmh3 hash algorithm used for converting entity key to entity id(In feast python sdk, it use this). I use this Golang lib and I check the complete compatibility in this lib with python sdk. I found this issue while investigating this. In my local environment(64-bit little endian), the test was completed. I will test it on my production linux environment on k8s cluster, asap.

Which issue(s) this PR fixes:

Golang api server can support DynamoDB as online store. About this, the issue(#3971) is made before. I will support this.

Misc

@shuchu @jyejare cc. @franciscojavierarceo

@iamcodingcat iamcodingcat requested a review from a team as a code owner June 21, 2025 10:14
@iamcodingcat iamcodingcat changed the title Feat: support online store as DynamoDB in Go feature server Feat: support DynamoDB as online store in Go feature server Jun 21, 2025
@iamcodingcat iamcodingcat changed the title Feat: support DynamoDB as online store in Go feature server feat: Support DynamoDB as online store in Go feature server Jun 23, 2025
Copy link
Collaborator

@shuchu shuchu left a comment

Choose a reason for hiding this comment

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

lgtm

Copy link
Contributor

@jyejare jyejare left a comment

Choose a reason for hiding this comment

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

LGTM, have some questions/comments.

github.com/mattn/go-sqlite3 v1.14.23
github.com/pkg/errors v0.9.1
github.com/redis/go-redis/v9 v9.6.1
github.com/roberson-io/mmh3 v0.0.0-20190729202758-fdfce3ba6225
Copy link
Contributor

Choose a reason for hiding this comment

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

@franciscojavierarceo @tchughesiv How are we treating these external/personal repos as a safe repositories to use ?

Something like govulncheck Github Action should really help.

Copy link
Contributor Author

@iamcodingcat iamcodingcat left a comment

Choose a reason for hiding this comment

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

I just add this only one test code for dynamodb as online store. Should I write more test code?

@iamcodingcat iamcodingcat requested review from jyejare and shuchu June 24, 2025 13:19
Copy link
Contributor Author

@iamcodingcat iamcodingcat left a comment

Choose a reason for hiding this comment

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

I use this same serializeEntityKey method that is used in redis online store. So I think that this method is common. So, I move this method to onlinestore.go.

@jyejare
Copy link
Contributor

jyejare commented Jun 24, 2025

@iamcodingcat Please sign the commit, one of the checks are failing.

iamcodingcat and others added 13 commits June 25, 2025 09:19
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
…ture (feast-dev#5422)

* Remote Write to Online Store

Signed-off-by: jyejare <jyejare@redhat.com>

* Comments Resolved and code shortened

Signed-off-by: jyejare <jyejare@redhat.com>

---------

Signed-off-by: jyejare <jyejare@redhat.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
…t-dev#5454)

* Make batch_source optional in PushSource (feast-dev#5440)

Signed-off-by: snehsuresh <snehsuresh02@gmail.com>

* docs: make batch_source optional in PushSource
Signed-off-by: snehsuresh <snehsuresh02@gmail.com>

* refactor: remove comment
Signed-off-by: snehsuresh <snehsuresh02@gmail.com>

* fix: ensure batch_source is valid DataSource after null check

Signed-off-by: snehsuresh <snehsuresh02@gmail.com>

---------

Signed-off-by: snehsuresh <snehsuresh02@gmail.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
…ing (feast-dev#5446)

Signed-off-by: Srihari <svenkata@redhat.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
…functionality

Signed-off-by: Srihari <svenkata@redhat.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
)

* feat: Enable materialization for ODFV Transform on Write

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
…east-dev#5423)

* feat: Added HybridOnlineStore for multi-backend online store routing

- Implements HybridOnlineStore, enabling routing of online feature operations to different backends based on a configurable tag (e.g., tribe, team, or project) on the FeatureView.
- Adds support for specifying the routing tag name via the 'routing_tag' field in the online_store config, allowing flexible backend selection.
- Supports multi-tenancy and flexible data management by allowing multiple online store backends in a single Feast deployment.
- added documentation
- fixed linter raised issues

Signed-off-by: r0b0fyi <renukaprasannakumar.badugu@walmart.com>

* feat: Added HybridOnlineStore for multi-backend online store routing

- Implements HybridOnlineStore, enabling routing of online feature operations to different backends based on a configurable tag (e.g., tribe, team, or project) on the FeatureView.
- Adds support for specifying the routing tag name via the 'routing_tag' field in the online_store config, allowing flexible backend selection.
- Supports multi-tenancy and flexible data management by allowing multiple online store backends in a single Feast deployment.
- added documentation
- fixed linter raised issues

Signed-off-by: r0b0fyi <renukaprasannakumar.badugu@walmart.com>

---------

Signed-off-by: r0b0fyi <renukaprasannakumar.badugu@walmart.com>
Co-authored-by: r0b0fyi <renukaprasannakumar.badugu@walmart.com>
Signed-off-by: iamcodingcat <joyh951021@gmail.com>
@iamcodingcat iamcodingcat force-pushed the feat/go/online-store/dynamodb branch from 3c7ac9a to e123a5d Compare June 25, 2025 00:21
@iamcodingcat
Copy link
Contributor Author

@jyejare I am twisted at git commit history for signing my commits. 😢 I made duplicate PR sync with latest master branch.
Can you approve about this PR, please? @jyejare @shuchu cc. @franciscojavierarceo

@iamcodingcat
Copy link
Contributor Author

I close this PR and delete branch

@iamcodingcat iamcodingcat deleted the feat/go/online-store/dynamodb branch June 25, 2025 00:57
@iamcodingcat iamcodingcat changed the title feat: Support DynamoDB as online store in Go feature server (Deprecated) feat: Support DynamoDB as online store in Go feature server Jun 25, 2025
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.

7 participants