-
Notifications
You must be signed in to change notification settings - Fork 1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
docs: Adding language recommendation #4266
Conversation
Signed-off-by: Francisco Javier Arceo <[email protected]>
Here we go 😄 I'm obviously very conflicted about this. I think we might be conflating two points here:
|
So in my last role I used ODFVs to create features and then persisted that output to a regular FV. This a simple hack to allow us to launch what we needed faster but the real solution is to enable FVs to have feature computations equivalent to how ODFVs work with the Python mode. The point is that feature transformations (i.e., precomputation) should happen in Python as well. ODFV will still need to support some light weight calculations (e.g., date differences from datetime.now()). Let me in how what you think and thanks for the feedback! I can definitely incorporate this feedback in. |
You're referring to |
yeah agreed with that. I'll clarify this in the doc more and I'll cut a PR to support Feature Transformations in regular feature views |
Java and Go Clients are also available for online feature retrieval. | ||
Java and Go Clients are also available for online feature retrieval. | ||
|
||
In general, we recommend [using Python](language.md) for your Feature Store microservice. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem I see with this recommendation is online feature retrieval latency. Python has high latencies compared to Go or Java option. Do you think its better to mention the latency impact?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried to address this point in this statement:
Precomputing features is the recommended optimal path to ensure low latency performance. Reducing feature serving to a lightweight database lookup is the ideal pattern, which means the marginal overhead of Python should be tolerable.
But I can be more explicit.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That definitely should be a factor. Even if you precompute, there will be applications out there with low-latency requirements and high enough load for which python server performance itself might become a bottleneck. I guess we are sort of trying to address that with introducing asyncio
in python online retrieval, but even that might not be enough for some use cases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While that is true in theory, in practice Python works very well at quite high scale so my goal is to make it clear that we recommend Python.
Regardless, I see that this is in the overview section so I'll add this snippet in it.
What this PR does / why we need it:
This PR adds documentation about why we recommend using Feast with a Python Microservice.
Which issue(s) this PR fixes:
#4266
Fixes
#4266