Git Product home page Git Product logo

Comments (10)

tchughesiv avatar tchughesiv commented on August 26, 2024 2

@tokoko @dmartinol the use-case for this enhancement is to allow for a potential future feast integration with the odh-dashboard. based on some initial discussions i had, it appeared an http server was required.

i've done some more digging this morning though and there appears to have been some more recent developments to the project around gRPC support. i'll continue my research and report back.

from feast.

tokoko avatar tokoko commented on August 26, 2024 2

dev's decision, proto definitions of objects were already in place, so grpc made more sense to me. The main motivation was to expose python-based registries to java/go feature servers, plus I was modelling it after BaseRegistry interface methods, so rpc felt more natural. Nothing that couldn't have been done with rest or http of course.

from feast.

tokoko avatar tokoko commented on August 26, 2024 1

Isn't that the job of a registry server?

from feast.

tchughesiv avatar tchughesiv commented on August 26, 2024 1

Just to provide an update on the use of gRPC-web w/ the feast registry's gRPC API. My tests were successful, so updates to the feature server are not necessary.
grpc/grpc-web@master...tchughesiv:grpc-web:dev

from feast.

tchughesiv avatar tchughesiv commented on August 26, 2024

Isn't that the job of a registry server?

@tokoko yes, and it will still be the job of the registry server. we'd just add new endpoints in feature_server.py that leverage the existing registry methods.

from feast.

tokoko avatar tokoko commented on August 26, 2024

I'm not sure I'm a fan, tbh. We'll end up having virtually identical endpoints in registry_server.py and feature_server.py, the only difference being that one is a grpc server and the other's an http one. We'll also have to secure it twice to validate permissions (see this ongoing PR for context). The surface area / complexity that non-python feature servers will need to be implement would also increase...

Do you have some specific use case in mind that can't be covered by the grpc registry server?

from feast.

dmartinol avatar dmartinol commented on August 26, 2024

I'm not sure I'm a fan, tbh. We'll end up having virtually identical endpoints in registry_server.py and feature_server.py ...

Agree, the servers should implement the equivalent Feast interfaces like OnlineStore, OfflineStore and Registry, so that they can be transparently accessed by remote python clients w/o using any 3rd party library (requests, pyarrow.flight, grpc and so on). Just run fs.registry.list_feature_views(). Adding more endpoints would break this pattern.

from feast.

dmartinol avatar dmartinol commented on August 26, 2024

@tokoko just out of curiosity, what was the reason to develop the Registry Server using grpc instead of REST?

from feast.

dmartinol avatar dmartinol commented on August 26, 2024

@tchughesiv is there a list of APIs requested to populate the dashboard and manage the exposed functions?
Maybe a dedicated Backend For Frontend service is more suitable instead of (trying to) use the endpoints of the various Feast servers which are instead targeted to serve the ML workflows.
Of course, this BFF can use the Feast server endpoints, but with interfaces tailored to frontend needs (and yeah, it can also 'talk' gRPC and Arrow Flight-ish), and can be installed by the operator as it needs to refer to the other servers exposing the Feast features.

Oops, I was almost implementing it 🤫 EOM.

from feast.

tokoko avatar tokoko commented on August 26, 2024

I'll close this for now, feel free to reopen if circumstances change.

from feast.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.