Coder Social home page Coder Social logo

Support for gRPC about lura HOT 6 CLOSED

luraproject avatar luraproject commented on May 5, 2024
Support for gRPC

from lura.

Comments (6)

alombarte avatar alombarte commented on May 5, 2024 16

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 interfaces router.Router and router.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.

kpacha avatar kpacha commented on May 5, 2024 4

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.

 avatar commented on May 5, 2024

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.

kpacha avatar kpacha commented on May 5, 2024

@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.

kpacha avatar kpacha commented on May 5, 2024

@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.

github-actions avatar github-actions commented on May 5, 2024

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)

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.