Categories:
Aura Gateway API architecture and components
Development architecture and technical components of Aura Gateway API
Technical foundations
aura-gateway-api is mainly a web server built on Typescript 4.3 using nodejs as engine. It is api-first designed, using OpenAPI v3 to provide the API definition and openapi-backend to handle swagger specification.
aura-gateway-api server is composed by several plugins, which provide different functionalities to this component. From the different capabilities that aura-gateway-api can manage, certain plugins are used by all of them and others are specific of one capability.
A channel, service, or skill uses an application to connect with aura-gateway-api following this communication protocol.
Architecture overview
The following figure shows the main technical components of the aura-gateway-api.

ConfigurationManager
ConfigurationManager is a handler for configuration, obtained through a configuration file or environment variables.
RedisConnector
RedisConnector is a handler connection to redis.
Kpis-handler
KpisHandler is the module responsible for writing the KPIs entities.
HTTP server
Microservice is implemented as an HTTP server (AuraGatewayServer) that exposes an API to receive the request to be validated.
Middlewares
The route published in the API definition file is handled by a controller but, before a request lands on its controller, it goes through a series of middlewares that provides some common steps needed by all the controllers of the server such as: request validation, common parameters extraction, logging, metrics initialization, etc.
Plugins
Different plugins provide functionality to aura-gateway-api.
Check the available ones together with detailed information in: aura-gateway-api plugins.