API Gateway

The concept and pattern of an API Gateway has existed for some time, but over the last few years it has gained significant focus due to the large uptake in Digital, Cloud Transformation, Open Banking (PSD2) and Micro-services. This has caused organisations to look at the IT services they offer, understand the business and customer value, as well as think about future service offerings.

What is an API Gateway?
Put simply, it is a means of defining at the top-most level the IT services that your system or organisation support. A good example of a common “general purpose API” can be found here.

With the ongoing growth in multi-channel and multi-device support, this simplistic approach introduced its own limitations. The continuing charge of UX and front end development and technologies as a thing in their own right, have helped introduce a popular evolution to a simplistic monolithic API Gateway.

Backend for Frontend
While full stack developers are still very much in existence, backend developers and frontend developers are two separate skills that are here to stay. The tools and technologies to support each are numerous and feature rich. For that reason the “Backend for Frontend” pattern has become popular. A good explanation of this pattern can be found here.

In summary, this allows frontend developers to write their own code to consume existing services (e.g. Micro-services) outside the constraints of full stack development, testing or change management. Improvements and changes can be delivered more readily and cheaply to the end user. The implication here of course is that these types of changes are relatively numerous. If the underlying services themselves are small and discreet, accommodating change at this level may be cost effective.

AWS API Gateway
AWS are constantly adding to and improving their service offering. A relatively recent addition (2015), was the introduction of their own API Gateway. It provides many benefits, including a secure front-door to your existing services and potential aggregation of services (without the need for server deployment). However, before considering its use, there are known limitations, including its limitations regarding communicating with secure parts of your network.

How does this change Micro-service Architectures?
Logically, it does not change a well architected micro-service architecture. There are many patterns associated with micro-services, and an API Gateway should be considered an evolution of an aggregator or proxy pattern, but existing at a different level within your system. Note that this does not preclude an API Gateway calling a micro-service aggregator, and for that reason these patterns should be considered complimentary, as well as useful in their own right.

Published: March 2017