Smart Runtime Engine
The internal execution engine is updated with a new self-tuning and non-blocking reactive engine, allowing better performance and out-of-the-box scalability. Exchange patterns no longer exist, and all connectors receive responses. Every flow uses a non-blocking processing strategy with no need to configure processing strategies anymore, and a single, global thread pool exists for all flows.
Simplified Message
The Mule Message structure has evolved, making it easier to work with properties and provide more consistency across connectors.
Improved Error Handling
There is more comfortable and more robust error handling with a new Try scope. Now, each component declares the type of errors that it can throw so that you can identify potential errors at the appropriate time.
Enhance Events Directly from Connectors/Modules
It is now possible for any given module operation to define a target (or target variable), which saves the result in a variable. It reduces flow complexity by removing the need for an enricher.
Simplified Connectors and Modules
There is more consistency around modules and connectors, creating one centralized experience on ways to interact with Mule components.
Enhanced DataWeave (2.0)
DataWeave is now the default expression language. Combined with the built-in streaming capabilities, it simplifies most everyday tasks.
1. DataWeave substitutes MEL: DataWeave can now easily access data anywhere in your flow without the concern of transforming it.
2. Movement to more functional programming using lambdas.
3. Typing for reusable functions.
4. Changes in flow controls:
- From “when otherwise” to “if-else.”
- Pattern Matcher from “case default” to “match else.”
5. Type References from type to Type.
6. Conditional Key-Value Parenthesis from “value when the condition” to “value if condition.”
7. Modular paradigm:
- Now support type introspection.
8. Added “import” and “import function from” for modules.
Streaming Management
The runtime automatically handles data streams, which greatly simplifies working with data in the runtime.