We continue our series of articles about ESB systems that are popular on the Russian market.
In a previous article we looked at how Talend, Mule, Red Hat Fuse and WSO2 systems implemented ESB layer components: studio, message brokers, monitoring, logging. Now let's take a closer look at what each of these systems is, what their interface looks like, and what are their pros and cons in developing and supporting integrations. In addition, we will share our own impressions of the implementation of each of these systems.
Why does the ESB project include: the technical side of the issue
One of the most common objections to using the ESB layer in the architecture of a company or a separate project is that independent systems can be connected without “intermediaries”. It is enough to develop an integration module in one of these systems or use, for example, an API.
Let's take a closer look at these options.
The first option is an integration module in one of the systems. As a rule, its development is delegated to the team that is directly involved in the development of this system. For such a team, developing integrations is a non-core task that involves risks, for example, making unobvious integration mistakes, spending much more time than planned, and making architectural mistakes.
Plus, the development team will have to “tie” the system to monitor the integration's performance. And this is not an easy and voluminous task. It is necessary not only to develop an integration that works smoothly, but also to give the support team clear guidelines for dealing with failures that may occur.
And even if the integration works here and now, there is no guarantee that it will work tomorrow. Moreover, there is no guarantee that the development team will find out about the “failed” integration before the customer comes to it with a complaint: “Data exchange does not work for me.”
The second option is to transfer data via an API or, for example, GraphQL. There is a caveat here: the API that the system uses to exchange data with the outside world is passive. The system can only respond to requests — send data outside or change it at the “initiative” of another system.
As a result, the two integrated systems will wait for “initiatives” from each other to transfer information (this is inevitable with the API). For the transfer to take place, you will have to enter a third “player” — an active system, that is, in fact, a data bus (ESB).
In an ideal case, this “design” should be supplemented with webhooks in the master system, that is, in the system that is the data source. They will “run” requests to change data in receiver systems immediately after this data is changed in the master system.
ESB tires: a brief overview of features, pros and cons
Let us consider in more detail the four ESB systems that are popular on the Russian market that the kt.team works with: Talend, Mule, Red Hat Fuse and WSO2. To “illustrate” this article, we've made short videos where you can learn what the systems interface looks like and how integration is being developed.
Talend
Talend is a product of the French company of the same name (now registered in the US), launched on the market in 2006. Talend is positioned on its official website as “the first commercial solution for developing open source integrations”. Perhaps because Talend was a pioneer in its field, it still has a more archaic interface than other tires today.
Pros
Almost all the functionality of the paid version can be implemented by open-source tools. A huge number of ready-made components have been sewn into the studio, and there is also an opportunity to develop new ones.
Thanks clear and detailed documentation It's easy to get started with Talend. In fact, all typical actions and questions are already described in the instructions.
In addition, Talend has formed around developer community: at the forum, they discuss the specifics of working with the system, the possibility of deploying it and implementing certain functions. If you have any questions during your work, you can easily turn to the “collective mind”.
Cons
In addition to the archaic interface, Talend's disadvantages include a rather complicated mechanism for creating subroutines. If you want to select a piece of job (a mini-program that performs a specific task) and turn it into a subprogramme that you will access from several places in the main job, you will have to spend a lot of time diving in and studying the studio, especially if a business analyst without deep knowledge of programming (the so-called citizen developer) works with the system.
The free version of Talend doesn't include Git, but you can connect it yourself. The situation is complicated by the project's structure in the system: the project consists of atomic and visually unrelated jobs instead of a “file tree”.
The paid version of Git is built in, but it runs in the background: you don't control it. It should also be noted that the very essence of working with Git in the paid version is to automatically commit each change. You can't edit the same job from two computers at the same time, just open it for reading.
Let's add here a not very simple mechanism for creating your own components, and we get a system that is quite complicated for the user with a high threshold for entering development.
At the level of data transmission lines between elements, Talend has flexible settings. It looks like an advantage, but in fact this is also the drawback of the system. It will be difficult for business analysts to understand the transformation of objects. The logic of the lines is not obvious: to understand the behavior of the program, you have to take into account the asynchronous operation of these same lines.
Let's summarize
Talend is definitely a powerful tool even in the free version, but you can only fully understand this by getting used to its logic.
Mule
The product is now owned by Salesforce. It was first mentioned around 2006 when Ross Mason started developing Mule. In three years, Mason's development gained popularity, and he started MuleSource (MuleSoft since 2009), headquartered in San Francisco.
The product name is explained as follows: Mule (translated from English. “mule”) does donkey work for developers. This is what developers do when they write code to integrate systems. Developers are helped by Anypoint Platform, which allows you to quickly customize the interaction of various applications, data, and devices using the API.
In March 2018, Salesforce bought MuleSoft for $6.5 billion, Mark Benioff's most expensive acquisition at the time. Mule supports the Salesforce ecosystem's mission to move businesses to the cloud.
Pros
The interface is based on Eclipse and has intuitive elements and components. Many of the components that are installed by default during the job build process do not require adjustment.
The Anypoint Studio tool allows you to easily and effectively control all APIs in orchestration according to key parameters and metrics: the initial design of the future API, access control, logging and server statistics.
The Anypoint Exchange tool allows you to maintain a catalog, search for and share various artifacts (APIs, code snippets, templates, examples, connectors, etc.). All of these artifacts can be shared publicly or within an organization.
There are enough cloud services to create integrations. Thus, Mule complies with the new iPaaS concept (abbreviated from English integration platform as a service, Russian. “integration platform as a service”). The ESB concept involves deploying the entire infrastructure from scratch on your own servers. However, many companies today use cloud services. You can build your infrastructure with iPaaS much faster and better than developing it from scratch.
The entire project can be viewed at the file level, allowing you to work with Git to manage project changes.
Cons
Mule's free trial is valid for 30 days. If you plan to continue using the tire, you need to purchase a license during this time. The license cost is calculated individually.
The features of the Community version are very limited. And if you do not have serious expertise in Java, it's better to immediately think about buying a paid version.
Let's summarize
Mule is part of the Salesforce ecosystem, which is undoubtedly a plus. The platform's tools allow you to work in the iPaaS concept. Trial and Community versions include additional license costs and qualified personnel.
Red Hat Fuse
A Red Hat product developed on the basis of the Camel library. The first mention of the platform dates back to around 2008. Out of the collection presented in this article, Red Hat Fuse is the most developer-oriented solution. On the one hand, this provides almost unlimited customization options. On the other hand, the entry threshold for analysts is quite high.
Pros
Good integration into Red Hat infrastructure. If your company is already using other Red Hat solutions, Fuse can easily integrate into your existing infrastructure.
Fuse's licensing scheme is the same as the entire Red Hat product line: you only pay for paid support when you want to.
The entire project can be viewed at the file level, allowing you to work with Git to manage project changes.
Cons
A weak set of components makes it necessary to write a large amount of additional code and connect many solutions in the form of Java libraries.
There is no “harness” for managing the API, the component store and other related products that competitors have. It also creates a sense of incompleteness.
Let's summarize
Red Hat Fuse is a tool with unlimited customization options, but with a high entry threshold. It does not contain additional tools that can simplify the development of integrations.
WSO2
The WSO2 platform is an easy and fast solution for the integration of information systems. The first mention of the product dates back to 2005. The product supports all protocols and has a wide range of connectors to various systems.
Pros
The Apache 2.0 product license allows you to deploy WSO2 and begin trial use. The platform is fully open source. Purchasing a subscription does not affect the product's performance and is only necessary to comply with license cleanliness.
The advantages of WSO2 include a fairly low entry threshold and a nice interface.
All the functionality of the platform is already available in the basic version. The ability to build Docker images allows you to use Kubernetes as an orchestrator.
Integrations are supported through related products, such as API Management.
The entire project can be viewed at the file level, allowing you to work with Git to manage project changes.
Cons
It is difficult to identify pronounced disadvantages. WSO2 is a well-balanced product, though not as powerful as Mule.
Let's summarize
WSO2 is a platform with a nice interface and a well-thought-out mechanism for supporting integrations. It is inferior to Mule in power.
Results: how to choose an ESB system for your project
Almost any of the tires reviewed can be used in both paid and free versions. But each of the products presented in this review has its own characteristics that dictate the optimal areas for its use.
If you want to save money on purchasing a license, Fuse is the best option. However, be prepared to invest in developing multiple solutions and harnesses from scratch.
Talend or Mule are good for a quick start. Your choice may be influenced by the cost of licenses, which depends on your system usage profile. Talend builds pricing on the number of developers, and Mule on the amount of resources used.
WSO2 has the best balance between functionality and ease of calculating the license cost.
As an IT integrator, we can work with any of these solutions and are ready to advise you on choosing the bus that is most suitable for your needs.