API Gateway handles all the tasks involved in accepting and processing up to hundreds of thousands of concurrent API calls, including traffic management, CORS support, authorization, and access control, throttling, monitoring, and API version management.
Benefits of API Gateways:
- Wrapping your microservices together and making them accessible via API gateway provides secure, faster, easier access to your services.
- Makes your APIs and backend systems more secure via a single interface approach.
It gives you full control of the API execution environment using extensible policies for security and access control, throttling, routing, mediation, and SLA management.
- Simpler code writing, for both your services and your application users.
- Decreased latency over time due to fewer back and forth calls.
- Faster, easier access to all microservices.
- Decrease in workload on each individual microservice or load balancing.
- Comprehensive metrics collection.
Challenges of API Gateways:
- Response time: While latency and response time are often decreased due to requests traveling more efficiently, the additional step of a request passing through an API gateway can potentially add to response time.
- Dependencies: Anytime a business adds, changes or removes a microservice, it must update its API gateway. That can be challenging with an application that has evolved from having just a few microservices to encompassing many. However, creating API design rules can help with this.
- Complexity: Routing logic can make communication with microservices more complex. The API gateway is another system that must be developed, deployed and maintained.
- Security: Because an API gateway touches many areas of an enterprise’s systems, its compromise can seriously impact an application’s safety.
- Reliability: If there’s only one API gateway and it goes down, the whole application becomes unavailable. Creating multiple API gateways and using load balancers can help avoid this situation.
For more info: https://skolaparthi.com/api-gateway/