Search code examples
kubernetesmicroservicesapi-gatewaykongapache-apisix

Looking for a suitable API-gateway solution


Our project is undergoing a refactor to a micro-services architecture, and we are currently considering different API gateway solutions.

We did our research, looked at the official sites for several solutions, went over some technical comparisons of different solutions, and read articles about our top picks.

So far our main contenders are Apachee APISIX and Kong, but we are quite torn between them and would like to get a general opinion from actual users.

Below are outlined the different properties and requirements of the project, I would appreciate it if any of you can point out some pros and cons of a solution you are familiar with in regard to them, and it would be great if someone facing similar requirements could share their experience with actually integrating one.

General Info

  • The project is of medium scale, has an active user base, and sees daily use around the clock with an incoming traffic count of a few thousand per minute on the backend.
  • The project is hosted in a private network, and no cloud services are utilized, so we are looking for a good on-prem solution.
  • Looking for a rather lightweight solution.

Technical Info and Requirements

  • AD FS-based authentication.
  • Significant reliance on JWT.
  • Using WebSocket in some micro-services, specifically Socket.io.
  • Kubernetes deployment, supported by Helm.
  • Full-stack under Monorepo.
  • Repository and CI/CD are hosted and managed on GitLab.
  • The team is trained in several coding languages but prefers working mainly with Typescript as we use React for the front-end, and NestJS for the back-end.

Thank you!


Solution

  • Apachee APISIX and Kong both are good at first place. i would suggest better to go depending on the use case which resolves for you.

    Coz when you say JWT both might be supporting the plugin or JWT option but would you like to parse JWT before the request reaches to service, header modification ?

    In the above case, you might be having an already existing plugin but not with other.

    Do you have any requirement for a UI dashboard (Admin API) for Kong there is an open source available but i am not sure about APISIX.

    Apachee APISIX is good for the cloud native while Kong is battle tested widely used.

    Kong is a feature rich API gateway with Wide community while other side Apache high-performance gateway with plugin support.

    This is my old article on Gateway comparison : https://medium.com/@harsh.manvar111/api-gateway-identity-server-comparison-ec439468cc8a

    you can see Kong is good, personally, i have used and satisfied my team's requirements with minimal effort.

    You can read my few articles on Kong and how it's easy to set up Kong with UI dashboard to manage

    But again Apachee APISIX is also good to choose wisely based on your actual use case and requirement.