-
Notifications
You must be signed in to change notification settings - Fork 29
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
[Discuss] Use gRPC gateway to generate REST endpoints #20
Comments
@woop Please feel free to also add other reviewers to the proposal. |
Thanks @randxie. I think what would be useful would be discussing the pros and cons of this approach vs sticking to what we have. It seems like what we're saying is Pros
Cons
Do you agree? Questions
cc @pyalex |
@woop The pros/cons make sense to me. I would like to clarify a few points regarding the proposal:
Regarding the question, please see below:
To summarize, the Golang server and supervisord config will be added into the container. We can use them if needed. Otherwise, everything will remain the same as before. |
Somehow I missed this. Noted.
Overall it sounds ok to me. Would like to have some of the others also add their opinions. |
@woop Any updates on the review? I can start making the changes if we agree on the proposal. |
Hey @randxie. I ran the idea past @khorshuheng and some of the others. Summary
Since none of those community members have felt strongly enough about the topic to voice concerns, would you be open to the idea of adding the functionality (as proposed) but documenting it as "experimental"? We'll say that REST won't come with the same guarantees as gRPC in terms of stability, compatibility, or performance. Also, is there any reason we can't use |
@woop Sure, documenting it as experimental makes perfect sense to me. Also, we shouldn't expect REST having same performance as gRPC provides. Regarding |
Great, happy to move forward then. I have a slight preference for |
Introduction
Right now, feast-java uses
RestController
(example code) to implement REST endpoints for both feast-core and feast-serving. However, this approach will increase maintenance cost. Therefore, generating REST endpoint from proto definitions is a cleaner way.Proposed Change
Use grpc-gateway to generate the REST endpoint.
Steps
1. Add gateway server to translate REST call into gRPC call to another process inside the container
The example gateway server will look like:
2. Use supervisord to start two processes inside a container
We can provide instructions to use different entry points. Here's an example config:
3. Remove existing REST controllers' code
As titled.
The text was updated successfully, but these errors were encountered: