Integrity in the execution of a process is essential when working in environments where we need to process more and more information, in less time and with guarantees.

Whether executing periodic processes, such as issuing invoices, interconnecting devices (the Internet of things), or launching a marketing campaign, it is essential to be able to ensure that data is not lost.

Some of the reasons why a process may fail are network outages, a software failure or a hardware problem.

To mitigate any of these setbacks it is necessary to define systems that allow us to secure the information efficiently.

There are numerous alternatives to obtain a system with persisted information, although they usually represent an overload both in the design and at a computational level.

The best option is to have a system that guarantees persistence in a light way, optimized to the design of your processes.

Fault tolerance in Mule

In order to enhance Mule’s integration platform, at Hawkore we decided to develop a new solution, a step beyond any existing alternatives.

As we explained in our High Availability and Mule post, in order to work with the Mule community version in high availability, with horizontal scalability, distributed processing, fault tolerance, and persistence, we merged Mule’s benefits with those of Apache Ignite.

Neither in the community version nor in the Enterprise version of Mule, there are factory solutions that guarantee fault tolerance. However, there are several ways to achieve this.

One of them is to modify the design of processes to use an external storage source, a solution that poses a number of drawbacks such as the impact on existing developments or the difficulty of coordinating data updates.

Our alternative is based on distributed structures in clusters to distribute workloads, store data and coordinate processes, which are integrated into Mule’s core (community or Enterprise) in a transparent way and with no impact on your developments.

In addition, these distributed structures support persistence in a native way thanks to Apache Ignite, which provides a high tolerance to failures and simplifies your designs as it does not need to be integrated with an external storage system (BBDD, queues…).

With our solution, when working with Apache Ignite’s data structures with active native persistence, you can enjoy the peace of mind of knowing that data will be persisted.