Basic Usage
 | Some of the links on this page go to the Mule User Guide, which requires that you log in. Registration is free and takes only a few moments. |
When you look at how a message flows through Mule ESB, you can see that there are three layers in the architecture: the application layer, the integration layer, and the transport layer.

Likewise, there are three general types of tasks you can perform to configure and customize your Mule deployment:
- Service component development: developing POJOs, services, or beans that contain the business logic and will be used as service components in a Mule deployment.
- Integration: developing routers, transformers, and filters, and configuring everything in the Mule configuration file.
- Extending Mule: developing new transports, connectors, and other modules used by Mule.
This page provides a high-level overview of the steps you take to perform these tasks.
Create a Service Component
A service component is a class, web service, or other application that contains the business logic you want to plug in to the Mule framework. You can use any existing application, or create a new one. Your service component does not need to contain any Mule-specific code. All the Mule-specific instructions will be configured on the service that wraps the service component.
To assist development, you can use the Mule IDE, which works within Eclipse to provide an integrated development environment for developing Mule applications.
Configure the Mule Instance
The Mule configuration file allows you to configure all the elements you need in your Mule instance. You use the <configuration> element to set global configuration options such as the threading profile. You then configure the connectors, transformers, and endpoints you'll use in different services. Lastly, you configure models, which act as containers for services and apply settings such as the queue profile to all the services in that model. For complete information, see Configuring a Mule Instance.
Configure the Service
You configure a service within a <model> element in the Mule configuration file. The service points to the service component, routers, filters, and transformers. It also specifies the endpoint on which this service will receive messages and the outbound endpoint where messages will go next. For more information, see Configuring the Service.
Following is more information on configuring routers, filters, and transformers for the service.
Routers
Inbound routers specify how messages are routed to a service, and outbound routers specify how messages are routed after the service has finished processing them. There are several default routers that come with Mule that you can use, or you can create your own routers. For more information, see Using Message Routers.
Filters
Filters specify conditions that must be met for a message to be routed to a service. There are several default filters that come with Mule that you can use, or you can create your own filters. For more information, see Using Filters.
Transformers
Transformers convert incoming payload data to the type required by the service component. After the service has finished processing the message, they can also convert the message to a different type as needed by the outbound transport. There are several default transformers you can use, or create your own. For more information, see Using Transformers.
Extend Mule
Mule provides default transports for many different channels, including File, FTP, HTTP, JMS, JDBC, Quartz, and many more. There are also community-created transports on MuleForge. If you need to send messages on a channel other than those provided, you can create a new transport. For more information, see About Transports.
You can also use Maven to create new Mule projects (transports and other types of modules). For more information, see [Using Maven].