In the dynamic landscape of application integration, efficiency and consistency are paramount. Imagine a scenario where a piece of code solving a particular problem could be reused across multiple APIs, reducing manual errors and ensuring uniformity across various applications. Welcome to the common flows in MuleSoft – a powerful feature designed to enhance reusability and maintainability in integration projects.
Understanding common flows
As the name suggests, common flows are reusable modules encapsulating certain functionalities commonly required across different applications. They eliminate the need to duplicate code and ensure consistency in implementation. With common flows, developers can encapsulate connector configurations, property files, and error-handling mechanisms, streamlining development efforts and promoting best practices in integration projects.
Use case overview
Common flows are particularly useful in situations demanding consistent implementation of functionalities across multiple APIs. In this blog, we are reusing common configurations such as HTTP Listener Configs, Error Handling and environment-specific config files from common-flows-poc to consume-flows-poc.
The approach involves packaging common flows in Maven dependency to achieve efficient integration.
Implementation
The implementation involves creating two projects: common-flows-poc and consume-flows-poc.
1. common-flows-poc
Configuration properties: Environment-specific property files are created and referenced from the configuration property component using the path: configs/${mule.env}.yaml.
HTTP Listener Configs: Externalised property files are utilised, ensuring flexibility and adaptability across environments.
Error Handling: A common error handling module is designed for reuse across various APIs, ensuring consistent error management practices.
Step 1: Adding Group ID in the Project POM
Configure the project’s POM file by adding the organisation ID of the Anypoint Platform Business group.
Step 2: Adding Classifier in Project POM
Configure the Project Object Model (POM) by adding a classifier in Mule Maven Plugin as ‘mule-plugin’. Below is a snippet demonstrating how to add the classifier in the POM:
Step 3: Adding Repositories and Distribution Management in Project POM
Ensure proper repository and distribution management configuration in the POM file for seamless deployment and consumption of common flows across projects.
Example pom.xml
Example settings.xml
We used connected apps for deployment purposes and added servers, as shown below.
Add repositories and pluginRepositories under Profile.
Step 4: Deploying Common Flows
Navigate to the project’s location containing the common flows and execute the mvn clean deploy command in the Command Prompt. This command triggers the build process, compiling the project, generating the necessary artifacts and publishing it to exchange.

Step 5: Verifying Build Success
Upon successful execution of the build command, you should receive a build success message in the command prompt. This confirms that the common flows have been published successfully and are ready for consumption.
Step 6: Check Published Status
Navigate to Anypoint Exchange and check if common-flows-poc is published there or not.
Open the common flows connector, and click on the Dependency Snippets.
Copy the Maven dependency. This dependency will be used in other APIs to reuse common flows.
2. consume-flows-poc
Let’s explore how projects can consume these common flows, reaping the benefits of reusability and efficiency.
Step 1: Adding Common Flows Project Dependency
To utilise the common flows within another project, add the dependency of the common flows project to the POM file of the consuming project. Ensure to include the appropriate groupId, artifactId, and version of the common flows project, along with the classifier as mule-plugin. Here’s how you can add the dependency:
As shown below.
Step 2: Integration Implementation
Once the dependency is added, the common flows become available for consumption within the consuming project. Developers can then import specific XML files from the common flows project to leverage its functionalities. This typically involves using an import component to include the desired flows in the consuming project’s configuration.
Config Files: Environment-specific configurations are automatically imported based on the provided environment name.
HTTP Listener Configs: Importing common-listener-configs.xml enables access to common listener configurations.
Error Handling: Importing common-error-handler.xml enables access to common error handling mechanisms.
Conclusion
Common flows in MuleSoft revolutionize integration development by fostering reusability and consistency. By encapsulating common functionalities, configurations, and error handling mechanisms, developers can streamline development efforts and promote best practices across MuleSoft projects. Embrace the power of common flows to unlock efficiency and scalability in your integration journey with MuleSoft.
Reference link: How to call to a shared flow in Mule 4