Keywords
API, gateway, micro-service, load balancing
Technologies
Golang, NGINX, Grafana, Docker, Loki
The API Gateway for Micro-services is a system that allows developers of distributed systems to aggregate their micro-service API endpoints under a single point of entry. It facilitates consistent application of security policies across groups of endpoints, routes traffic to the correct API endpoints, and gives detailed feedback on the behaviour of changes to a developers gateway configuration.
The gateway provides a suite of core features, including request routing, Basic Auth authentication, rate limiting, logging and observability through a Grafana dashboard. A management UI was developed to allow developers to configure routes and policies associated with their micro-services. A key difference between this API Gateway and existing solutions is how the gateway handles errors using semantics analysis. Changes are analysed by the system and presented to the user as feedback on how the changes are expected to affect the system, as well as what errors are likely to occur.
The objective of this API Gateway is to solve the problems of distributed systems, while also providing an educational environment for developers to learn the core functions of these types of systems.