The Microgateway Toolkit provides the capability to create specialized gateway distribution (Microgateway distributions) where only a single API or a group of APIs are included.Once a Microgateway distribution is started, it will start serving those specific API(s) right away.
In summary, a Microgatewayis aspecialized form of the WSO2 API Gateway by having below main characteristics:
Its ability to execute in isolation without mandatory connections to other components (Key Manager, Traffic Manager, etc).
Ability to host a subset of APIs of choice (defined on the API Publisher) instead of all.
Immutability - if you update an API you need to re-create the container/instance, no hot deployment. Microgateway offers you a proxy that is capable of performing security validations (OAuth, Basic Auth, Signed JWT), in-memory (local) rate limiting and operational analytics.
Following are some of its main expectations of Microgateway
Ability to host just one or a selected set (subset) of APIs only.
Ability to execute in complete isolation once setup, without having the need to contact the Management or Security components.
Easy integration with CI/CD processes.
Seamless integration with deployment automation tools and techniques.
The following diagram illustrates the process of getting an API (or a selected set of APIs) to be hosted on a Microgateway.
Setting up Microgateway Toolkit
This product will include a CLI, the B7a platform distribution and a few B7a extensions (Endpoints and Filters). The Toolkit will have two main responsibilities.
Setting up a Microgateway project.
Running the Microgateway project.
These two steps will be treated as two phases. One will first complete the "setup" phase and move on to the "build" phase. The reason for treating them as phases is to make it possible for developers to take control of the runtime if and when required. For example, what gets run as default on a Microgateway is a simple API proxy. If a developer needs to perform some sort of an integration or change the Ballerina source files for some other reason, he could engage with the project after the setup phase and do the required modifications before the distribution is built.