Mule App Deployment Model
A Mule project for deployment is a Mule application. A Mule runtime instance supports multiple apps running independently within the same Mule container. This allows additional advantages such as:
If you have to build a complex application, you can break it into several apps with their specific logic and then deploy the apps in the same Mule container.
Clear boundaries for running operations on what a Mule application is.
Mule can monitor your applications and will reload configuration changes automatically.
Applications can depend on different library versions, even if these would conflict before.
Multiple versions of an application can run within the same Mule container.
Every application is deployed together within a domain. By default, your application references the default domain, and no further configuration is required. You can see that it gets deployed together with the app in the console:
If you’re deploying multiple applications to the same place, and the applications could share the same resources, then you can create a common domain to define configurations that can be referenced by multiple projects. This allows you to expose different services in different projects through the same HTTP host and port without causing any conflicts.
Understanding the deployment model can be divided into several topics: