The 6 characteristics of good middleware software
In this day and age, we can’t imagine a world without cloud-based solutions and services. SaaS (Software as a Service) has irreversibly entered the workplace, increasing the demand for different cloud-based solutions to communicate with one another. After all, nobody wants to update the same data again and again, right?
For many SaaS platforms, standard connectors are available. However, most of the time, they’re far from perfect. The functionality often falls short, or an exact match between the two systems is not available yet. In that case, it could be interesting to look at a tailor-made solution to connect the different platforms. This kind of 'middleware software' is also called a 'connector.' Their only purpose is to connect two other systems, so there’s no need for a separate graphical interface.
At Unikoo, we have quite some experience in connecting cloud-based solutions for various projects. For example, let's discuss one of our clients in HR technology. We created middleware software to connect the SAP SuccessFactors ecosystem and the Spencer employee communication platform and provided integrations with the Play It Safe game-based learning platform. Plus, we are currently working on a custom integration to connect Monday.com and the Teamleader CRM platform.
In this blog post, we discuss what we think are the essential features for custom solutions with middleware software.
1. Flexibly scalable
With cloud-based solutions, scalability is always a significant concern. As the number of customers will (hopefully) increase over time, it’s best to strive for a scalable solution right from the start.
However, keep in mind the limitations of upstream and downstream applications. We can’t have the middleware overload one of the systems because it sends too much data through too quickly. Queueing mechanisms can offer a solution here. That way, the connector determines which data is forwarded where and when.
2. Structured
Because middleware components rarely have a graphical interface, it’s crucial to have clear landmarks in the structure from which the software is built. When creating one big script that is responsible for everything, it quickly becomes unmaintainable. Clearly defined components and functions with simple responsibilities are essential. The SOLID principles certainly apply here.
3. Multi-tenancy
Most SaaS platforms are already equipped with multi-tenancy, meaning that several accounts are active on the same platform. Within SuccessFactors, for example, every company has its fully protected environment and can only access its data. Still, the different environments run on the same cloud platform.
This multi-tenancy should be included in your connector from the start. Just like GDPR legislation, because these issues could be complicated to solve afterward.
4. Cost-efficient
The customer already pays for the SaaS platforms you are trying to connect. So, logically, a middleware component would cost extra. However, these costs should be proportionate to the total cost and the business value that the customer attaches to the integration. If it’s cheaper to have someone transfer the data manually, building a connector doesn’t make sense.
Fortunately, some perfectly scalable solutions allow us to run software very efficiently. At Unikoo, we like to use serverless solutions. These allow customers to only pay for the capacity they use. For example, suppose your connector is active for 10 seconds every hour. It would be insensible to pay for it 24/7. With serverless solutions, you can move to a 'Pay-per-use' model. This is often cheaper than the classic dedicated or shared server model.
5. Event-driven
An asynchronous operation combined with a serverless model and a strong focus on scalability is an highly suitable solution for event-driven architecture. Without going into too much detail, event-driven systems consist of separate components that generate events. They don’t directly address each other. Other components can then choose to consume these events and take action with them in turn. This way, you get very flexible and scalable solutions that are only active when something needs to be done (e.g., when an event is triggered).
6. Good monitoring and logging
Because there is often no graphical interface, no end-users will see an error message when something goes wrong. That’s why you should quickly see what’s going on when the connector is not working as expected. This is even more important when a serverless solution is used, since you have many different separate elements. A good logging strategy combined with a clear monitoring dashboard can make a world of difference.
Do you want to connect different cloud-based solutions using middleware software? Don't know where to start? Feel free to contact us via development@unikoo.be or call us on +32 3 376 00 98. We're happy to help!