M360API

November 26, 2021 mikehajj

M360API stands as an API Management platform comprising three interconnected products, empowering web engineers to seamlessly build, deploy, manage, and operate their APIs and microservices. This platform addresses the intricate challenges posed by complex applications, which involve multiple components and diverse programming languages.

In January 2019, I embarked on a new venture aimed at delivering a superior solution to the challenges faced by engineers in the lifecycle of developing complex web applications, building upon the success of the SOAJS Project.

This time, I envisioned a pluggable solution that enables engineers to construct scalable web products even faster than with SOAJS. The emphasis was on reducing the entry barrier and learning curve, ensuring compatibility with existing products, and enabling development from scratch. Importantly, the solution needed to be portable and lightweight, allowing engineers to host it on any platform without resource constraints or dependence on a specific cloud provider.

Upon proposing this idea to CorsairM360, they embraced it, appointing me as their Chief Technology Officer and providing the necessary resources for product development.

The project commenced in February 2019, and by the end of the year, we had created blueprints and documentation. The alpha version was completed, and by early 2020, we welcomed our first client, Spread, a startup with an innovative platform serving publishers and advertisers in the MENA region (Middle East and North Africa).

M360API, with its three components, effectively addresses integration and complexity challenges in web applications, allowing engineers to overcome obstacles efficiently:

API Gateway


The M360 API Gateway is a portable multi-tenant gateway designed to solve integration challenges between backend system components and frontend interfaces. The gateway eliminates many layers that engineers need to code and place on top of the business logic of their component while building an application to flag that component as ready to be published on production platforms.

These extra layers have little impact on the business logic of the component the engineer is building yet, the engineer must include them. These layers are also present in every component in the application and enable the components to communicate with one another. In addition, complex applications include components coded in different programming languages and this increases the level of complexity even further.

Therefore, the gateway does not address the challenges of building APIs. Instead, It focuses on solving the challenges of connecting APIs and components. The Gateway, helps engineers connect microservices (backend components) easier, and faster, and deploy them behind its firewall. The Gateway protects all the microservices deployed behind it by introducing several configurable security layers. In addition, it standardizes the communication between these microservices, regardless of the technologies they are built with. Finally, the gateway augments incoming requests with its Multitenancy capabilities before handing over the request to a microservice API.

Using the gateway, engineers only need to focus on the custom business logic they are creating in their APIs and do not have to worry about the extra layers that should be added.

Middleware


The M360 Middleware is an open-source multi-technology component that gets installed as a dependency in any microservices deployed behind the API Gateway. The middleware is available in every web programming language and allows M360API to integrate and extend any product no matter the technology it is using.

The middleware interprets the extended information that the Gateway Injects into incoming requests before supplying them to the API of a microservice thereby augmenting the capability of the API and the microservice without any code revamp. The extended information can include settings, configuration, and details related to clients making the request. The middleware helps uplift APIs to support multitenancy without any code revamps.

The Middleware SDK also facilitates fetching registry information from the environment where the microservice is running. This eliminates the need for engineers to create any static hard-coded configuration like database connections, mail and session settings, CORS, and any other configuration files and store them in their code repositories. This configuration can be factored out to the environment’s registry and the middleware SDK will load it and hand it to the engineer.

Using the middleware, Engineers can build fully dynamic systems driven by configuration. These systems can then change their behavior and operate on different resources simply by modifying the environment registry.

Console


The M360 Console represents the interface that engineers use to configure, monitor, and operate their applications. This Console is equipped with tons of wizards. It allows engineers to create multiple environments, connect them to resources from different technologies and hosting platforms from various cloud providers, and deploy their components. The wizards also guide engineers in defining who has access to their deployed components and monitor and troubleshoot running systems. Furthermore, the console is equipped with an API Builder, that helps engineers generate microservices in any web programming language preconfigured with the M360API Middleware and ready to be deployed behind the API Gateway.

The Console is multi-environment by design, which means that only one instance of the portal is enough to grant accessibility and visibility to all created and running environments in a project. While using the console, engineers can simply switch between environments and work from the same location. Finally, the console is portable (enterprise edition only) and runs on any infrastructure supporting a Linux Operating system.