Project blog of Apache APISIX, an open-source API gateway, covering use cases, ARM server benchmarks, and load balancing for AI APIs.
HN commenters mention it as an alternative to other gateways and rate limiters, and link its docs on getting started and HTTP/3 support.
I'm currently looking into using Apache APISIX, seems really interesting - especially the part of writing custom plugins.
At Swisscom [1] we've created an APISIX [2] Plugin [3] to interact with Open Policy Agent (OPA) [4] to perform certain actions depending on the result of a policy evaluation.
An integration with Ory Keto [5] could allow us to have a centralized API Gateway with authentication and authorization termination (by using opa-keto [6]).
This is the power of open source technologies :)
[1]: https://swisscom.ch
[2]: https://apisix.apache.org/
[3]: https://github.com/swisscom/apisix-opa-plugin
[4]: https://www.openpolicyagent.org/
[5]: https://www.ory.sh/keto/docs/
[6]: https://github.com/swisscom/opa-keto
Depends on your needs of API Gateway, Ingress Controller, and Service Mesh.
According to Apache APISIX Slack[1] channel discussions and GitHub Issues/Discussions, most people focus on Security, Feature Rich, and Performance.
1. Security: As an Apache project, there have a lot of users and maintainers who are watching project activities, and the Security Team follows up very quickly.
2. Feature Rich: Just join the Slack channel and you will find that lots of questions are related to "features".
3. Performance: https://api7.ai/blog/apisix-kong-3-0-performance-comparison
[1] https://apisix.apache.org/slack
Here's a page that talks a bit more about Apache APISIX: https://apisix.apache.org/docs/apisix/getting-started/
I find it a bit ironic that they don't support Apache2 as the web server, you know, it being an Apache project and all, instead going for Nginx or OpenResty (though admittedly they're great projects).
Even nowadays Apache2 is pretty okay: https://blog.kronis.dev/tutorials/how-and-why-to-use-apache-httpd-in-2022 (especially if you disable .htaccess for less disk I/O and use it with a single file based config)
> Why isn't there just one API gateway with minimal front-end-specific endpoints?
After Googling, I found that we can use both API Gateway (e.g., Apache APISIX, https://apisix.apache.org/blog/) and GraphQL to achieve this:
1. GraphQL: Let developers choose which resources to receive.
2. API Gateway: Except for implementing BFF, also we could filter requests to make sure upstream service is protected. (It's more flexible IMO)
I have no experience with any of these but maybe this helps: https://apisix.apache.org/blog/2022/07/30/why-we-need-apache-apisix/
Who would want to use a distributed key-value cache as a rate limiter?
Use APISIX[0] instead.
0 - https://apisix.apache.org/