Empowering your Teams; Building an Integration Mashup as a Service with WSO2 MI
By: Yasassri Ratnayake
Tags: Wso2, Maaş, Microinteractions, SaaS, Microservices

Photo by Nazarizal Mohammad on Unsplash

In medium-scale to large-scale corporations, there are numerous teams/business-units that operate cohesively yet independently to drive the organization towards its’ goals and objectives. These teams typically use different integral systems within their business units, which adds up to many different systems been adopted within the Organization. As the number of different systems grows within an Organization it’s going to be a nightmare to manage these different systems and technologies. On the other hand, it’s going to incur a considerable cost to the Organization. Hence as a proactive measure, it’s ideal for an organization to streamline and standardize the technology stack and the process, where the organization can build a common platform that can be used by the business units while eliminating the maintenance and management overhead. In simple terms, the Organization can develop a centralized SaaS platform where different business units can onboard themselves and start developing their integrations with a few clicks without worrying about the service management aspect. We will call this an “Integration Mashup as a Service(IMaaS)” where the platform will facilitate self-onboarding, service reuse, scalability, resilience, and above all streamline the integrations across the entire organization.

In this post, I will be exploring how WSO2 MI can be leveraged to develop an Integration Mashup as Service, Platform.

Terminology

Tenant: A dedicated service space within the IMaaS platform that is separated from other business units where the relevant teams can build their services.

Integrations: Integrations include connecting systems, exposing your data as services, protocol switching to connect with different systems, exposing APIs, syncing different systems, payload transformations, processing files and updating systems, etc.

Service: An collection of integrations that will cater a business requirement.

Designing the platform

Key Principles

Before diving into the design of the platform it’s crucial to identify the key principles that need to be considered when designing a SaaS platform. Hence the IMaaS platform should be developed keeping the following key principles in mind.

Scalability.

Performance.

Implementability.

High Availability.

Observability.

Data Privacy/Isolation.

Updatability.

Let’s look at each of the above principles in detail.

Scalability

Scalability is the ability of a system to handle a growing amount of work by adding resources to the system. Hence, the services should be able to scale depending on the load. This allows us to build a stable and fault-tolerant platform.

Performance

Performance expectancy is a key factor when designing any service platform. Hence the platform should be able to operate at an acceptable performance threshold.

Implementability

This refers to how easily the integrations can be built as microservices within the platform. This is a key factor in attracting new users to the platform.

High Availability

This captures the platform’s ability to maintain zero downtime. Which covers the aspects like failover management and the ability to perform rolling updates without shutting down the services.

Observability

One of the critical capabilities of any platform should be the ability to observe the services. Observability covers a few different aspects like, server resource monitoring, server matrics, message tracing, and log aggregating. Observability plays a key role when troubleshooting issues in the systems.

Data Privacy/Isolation.

This captures the platforms’ ability to isolate different tenant spaces and the ability to maintain data privacy. This requirement may differ from one organization to another.

Updatability.

This captures the platform's ability to update the services seamlessly and the ability to update the platform it-self easily.