Comments (6)
Hello @EliteGit,
gRPC is a possible implementation for KrakenD as it is based on the HTTP2 layer. So far is not a priority for us and never spent the time to put it in motion. I can tell you that this is not something included in our 0.6 roadmap (after summer).
As per the ideas on how to do it:
- In the router level you need to build the gRPC server and connect the handler generators to the proxy pipes. This implies creating the
github.com/devopsfaith/krakend/router/grpc
package and implementing the required interfacesrouter.Router
androuter.Factory
. - It might be necessary to adjust something at configuration level and in the proxy if anything extra comes out, although at the end of the day gPRC goes over HTTP2
The gRPC implementation it's far away in the roadmap, but we are totally open to implement it ourselves given there is interest. I will leave this issue open for a while, if I get enough 👍 to this comment I will put it closer to reality :)
from lura.
we're already working on it!
so far, we have some progress at the backend part of the pipes, so the gateway could consume data from gRPC services.
exposing endpoints as gRPC services will be goal of the next iterations.
check the project https://github.com/devopsfaith/krakend-grpc for more updates
from lura.
Hi, I am just wondering - If i need api gateway to do auth and proxy directly or aggregate and transform, and all backend is gRPC and the front end has grpc proto definition that can serve pb and json(either via twirp or grpc-gateway), does it make sense to use kraken instead of just implementing grpc server?
from lura.
@ivanjaros I think your question is independent of the transport/encoding protocol. Here are my main points:
- You can always build an in-house solution, but you'll need to code and maintain it.
- The initial specs tend to be far from complete (in my experience), so double check the generated estimates because their confidence is usually very low. In my opinion, it is also very important to think about rate-limiting, circuit breakers, service discovery, concurrent requests, metrics, logs, instrumentation, etc.
- There are many other things that you can consider such as flexibility in the manipulation of the data or the tolerance to errors.
- It's dangerous to think about this layer as just a router because that pattern introduces high coupling between your clients and the actual backend services
- This project has more than 2 years of contributions and there are big internet companies using it. We offer support services for those companies, so they can replace their in-house solutions easily and without investing more than one or two engineers part time
Cheers
from lura.
@EliteGit the PR #255 and #256 have been merged so the next released will support plugins... and here is an example of what can you do with it https://www.krakend.io/blog/krakend-grpc-gateway-plugin/
from lura.
This issue was marked as resolved a long time ago and now has been automatically locked as there has not been any recent activity after it. You can still open a new issue and reference this link.
from lura.
Related Issues (20)
- Control Plane/ Service Mesh Feature Request HOT 2
- GraphQL backend to support variables in the POST body for Queries HOT 2
- Probably me as newbie but I can't get the GraphQL proxy config to work HOT 3
- Race condition in shadowproxy HOT 1
- Default router behavior changing when the `router` configuration is present HOT 2
- Inconsistent interpolation behavior in various parts of the configuration HOT 1
- Metrics for HTTP-Client plugin not reported HOT 3
- Configurable SD protocol HOT 1
- Proposal: Ability to filter input_headers at the backend level HOT 1
- Log which endpoint failed to register HOT 2
- Remove restriction on multiple POSTS or other unsafe methods HOT 1
- Default router behavior changing when the router configuration is present HOT 1
- Where did the examples go? HOT 3
- Pass request `ctx` to modifier plugins HOT 1
- Gofiber Support HOT 2
- Plugin for running async operations HOT 1
- Unexpected Content-Type when setting return_error_code and return_error_msg HOT 5
- Host List Causing Addition of 'http://' in Front of Address and DNS Resolution Leading to 'No Such Host' Error HOT 1
- logger.Fatal received too many arguments HOT 1
- Mixed paths when performing multiple backend calls in parallel for a given Endpoint HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lura.