Building Microservices With Kong API Gateway - Read Time: 3 Minutes

Introduction

I recently started to use Kong as an API Gateway for my work. As we were working towards the Microservices architecture, which is what they call Backend for Front-end (BFF) for short. 

We came across this conclusion as we are heading towards a single API gateway. 

Which tries to provide API services for our front-end, developer API of both cloud and on-premise deployment. 

What Is Backend for Frontend?

BFF focus on having multiple backend services with each providing a specific service to the front-end through multiple API gateways instead of a single large API gateway.

The advantage of this approach is that you avoid building a large and complex API gateway which is a jack of all trades. 

This leads to the maintainability issues related to the complexity of adding new code to the gateway and the single point of failure. 

When we are trying to scale for various services provided to the front-end.

By adopting BFF, we break down this single API gateway into multiple API gateways for specific front-end use cases. 

Like for example providing API gateways for either mobile and desktop user experiences.

What is Kong?

No, it's not Kong the movie, it is an Open Source API Gateway management layer for Microservices. 

Which helps to manage your APIs and provides a lot of features like authentication using JWT or Oauth. 

Kong provides a bunch of useful plugins that you can use it off the shelf, even if you are just using the community edition which they provide for free.

To date, Kong has been founded in more than 40, 000 instances for production environments from startups to big enterprises. 

Besides that Kong is built on top of NGINX and uses either Apache Cassandra or PostgreSQL database . 

Another great reason we choose Kong as an API gateway management is that it provides docker images and wide support from cloud platforms like AWS, Microsoft Azure or Heroku.

Conclusion

So far working has been quite useful as it offloads a lot of problems we might face by going for microservices. 

Which can be a major headache in building your APIs and adding authentication, rate limiting plus exposing these API endpoints to the public for developer usage.

The main reason I will ask anyone to go for Kong will be that it is platform agnostic, which means you will not be locked into a specific vendor. 

Backend for Frontends

https://samnewman.io/patterns/architectural/bff/

Building a Backend for Frontend For your Microservices

https://nordicapis.com/building-a-backend-for-frontend-shim-for-your-microservices/

Summary of Kong as An API Management Solution

https://apievangelist.com/2018/02/13/summary-of-kong-as-an-api-management-solution/

Kong

https://github.com/Kong/kong