Migrating to Mule 4: The New Version of Mulesoft
It may be hard to believe that eight years have passed since Mule 3 was released in 2012. MuleSoft has grown exponentially in popularity, in fact, Mule is used by more than 1,000 enterprises in 60 countries across all kinds of industries. It has also assembled a very impressive developer community consisting of more than 175,000 developers. Mule 4 encompasses all of the benefits that companies and individual developers love, and takes it to a whole new level.
This post will tell you why you should upgrade to Mule 4, and then a deeper overview of specifics: DataWeave, Error Handling, New Connectors, and New Mule SDK.
Why you Should Upgrade to Mule 4
Mule 4 was built on the strong foundation that Mule 3 created. There has been a major upgrade to the core runtime engine that powers the Anypoint Platform, which speeds up new app development by eliminating the steps and concepts that would otherwise need to be learned.
More specifically, the language used for connectivity has been simplified; there is a new error handling framework, better upgrading processes, and many other positive changes.
Upgrading to the new version of MuleSoft can power your application network by:
- Accelerating the delivery speed, making it easier to onboard a new developer
- Easier to manage streams and payloads that are larger than what your memory allows
- Enabling developers to automatically generate connectors from RAML specs with REST connect
- Creating better quality custom connectors and components with the Mule SDK
Now that we have an overview of what you can expect in the newest version of Mule, let’s get into the specifics.
Image source: DZone
DataWeave is the default expression language that replaces the Mule Expression Language (MEL) used in the previous version. While DataWeave is not new per se, it has received a major facelift.
With MEL, there were many different evaluators that handle various inputs such as JSON and Groovy. Even though MEL handled these expressions fairly well, it did not manage the transformations very well. Due to this reason, developers had to use tools such as Transformers and DataMapper for manipulation purposes, but as the integration landscape continued to progress, they became more advanced.
Ever since it was introduced back in 2015, DataWeave became a big hit among developers. You will love how it supports runtime integration and the language itself has been improved as well. One of the biggest reasons for its popularity is that it focuses on the structure of the data instead of the format. You no longer have to use different Java arrays to handle expressions from JSON and DataWeave. You can now query and evaluate any expression without having to transform it into a Java object. You will also be able to access binary data anywhere with repeatable access.
Image source: Stackoverflow
Previously error handling was Java exception handling and there was no way of communicating the type of error each component produced. Even though you will still have access to Java Throwables, Mule 4 still uses the Mule runtime engine to handle errors. If you encounter any problems with a component, Mule will tell you exactly what the error is and some information on why the issue occurred. You can then route this error to a handler. Also, it is important to know that you will be able to identify all of the potential errors during the design phase because each component declares the type of errors that it can produce.
There are now new triggers in the Anypoint connectors that allow you to run queries in target systems. The connector will include logic that is already built-in that will keep an eye out for any changes on data. This can be something like creating a new field in a database, creating a new file and other changes. The File and FTP connectors have also been improved and now allows the possibility to create files, appendices and many other possibilities.
New Mule SDK
In the new version of MuleSoft, there is an upgrade on the old Anypoint Connector DevKit. It allows developers to further expand the boundaries of Mule is capable of and create new connectors while also enhancing the collaboration process. There is now a simple, automation-based programming model that also allows for forward compatibility. Previously, with the old SDK you had to write code for the Connector thus bridging the code and the Mule runtime internal. Now, the SDK uses APIs which means that there is no need to write anything in between the Connector and the runtime.
The main goal of the new version is to make the lives of developers easier by eliminating unnecessary steps. Taking into account all of the additions and optimizations, Mule 4 is a big upgrade on the Mule runtime, thus making it easier to collaborate and develop new products.