Search Tutorials


Top Mule ESB (MuleSoft) frequently asked interview questions | JavaInUse

Top Mule ESB (MuleSoft) frequently asked interview questions.

In this post we will look at Mule ESB (MuleSoft) Interview questions. Examples are provided with explanations.


  1. What is MuleSoft?
  2. What is ESB?
  3. What is Shared Context?
  4. What are Batch Jobs in Mule ESB?
  5. What is Transient Context?
  6. What are the different endpoints available in Mule ESB?
  7. How to check if file exists in Mule ESB?
  8. What are Inbound endpoints and Outbound endpoints in Mule ESB
  9. What are the benefits of MuleSoft?
  10. How to create First Mule Application?
  11. What are the components in MuleSoft?
  12. What is Subflow in mule?
  13. How does RabbitMQ compare to Mule.
  14. List types of variables in MuleSoft.
  15. Explain Mule ESB?
  16. What is the benefit of using Mule ESB?
  17. What Difficulties Mule Does Encompass?
  18. Name the various kinds of Primitives that are used in Mediation.
  19. What is the difference between flow and Subflow in mule?
  20. What are mule flows?
  21. What is Service layer in Mule?
Q: What is Mule ?
A:
Mule ESB (a.k.a. Mule) is a lightweight Java-based enterprise service bus (ESB) and integration platform that allows developers to connect applications together quickly and easily, enabling them to exchange data. Mule ESB enables easy integration of existing systems, regardless of the different technologies that the applications use, including JMS, Web Services, JDBC, HTTP, and more.

Q: What is ESB ?
A:
An enterprise service bus (ESB) is software architecture for middleware that provides fundamental services for more complex architectures. For example, an ESB incorporates the features required to implement a service-oriented architecture (SOA). In a general sense, an ESB can be thought of as a mechanism that manages access to applications and services (especially legacy versions) to present a single, simple, and consistent interface to end-users via Web- or forms-based client-side front ends.
Q: What is Shared Context ?
A:
Shared Context: Context is a temporary area which is created along with Service Message Object (SMO) in the Mediation Flows. Shared Context is a type of context which is present in the SMO. Shared Context is mainly used when we are using Aggregation process where we need to Iterate the BO for Certain times. Shared Context maintains Aggregation data between Aggregation (FanOut and FanIn) primitives. The Content (data) which is present in the shared context BO does not persist across Request and Response flows i.e The Data in the Shared Context which is used in Request flow can not be used again in Response flow.


Q: What are Batch Jobs in Mule ESB ?
A:
A batch job is a top-level element in Mule which exists outside all Mule flows. Batch jobs split large messages into records which Mule processes asynchronously in a batch job; just as flows process messages, batch jobs process records.
A batch job contains one or more batch steps which, in turn, contain any number of message processors that act upon records as they move through the batch job. During batch processing, you can use record-level variables (recordVars) and MEL expressions to enrich, route or otherwise act upon records.
mule-1_1


Q: What is Transient Context ?
A:
Transient Context: Used for passing values between Mediation primitives within the current flow — either the request flow or the responses flow. The transient context cannot link requests and responses and hence cannot be used across. Used when you want to save an input message before a service invokes call (within a request or response flow). After the services invoke call, the next primitive can create another message by combining the service invoke response and the original message stored in the transient context.
Q: What are the different endpoints available in Mule ESB ?
A:
Different types of Endpoints are available in Mule, such as HTTP, JMS, IMAP, SMTP, and AJAX.

Q: How to check if file exists in Mule ESB ?
A:
This can be done using Mule Expression Language(MEL) as follows-
	<choice>
        <when expression="#[xmlFileExists()]">
            ...
        </when>
        <otherwise>
            ...
        </otherwise>
    </choice>


Q: What are Inbound endpoints and Outbound endpoints in Mule ESB ?
A:
Inbound endpoints are message sources (http://www.mulesoft.org/documentation/display/current/Message+Sources), which as the name suggests is where messages are created. They can be created based on external events (like an incoming HTTP request or JMS message) or by polling (like files in a directory).
Outbound endpoints and anything else you see in a flow (except exception strategies) are message processors (http://www.mulesoft.org/documentation/display/current/Message+Processors), which means they do something with the message in-flight the flow.
Q: What is difference between Mule Connectors and Transports Mule ESB ?
A:
Transports are targeted towards a way of transporting data, i.e. a protocol like HTTP or reading/writing files. These are general concepts and the other party behind such a data channel can be anything, a pure data sink or a party with whom data can be exchanged, own company or other.
Connectors are made for using specific APIs, e.g. those from salesforce.com or facebook. Usually, choosing a connector also determines how the data will be transferred in the end, e.g. HTTP.

What are the benefits of MuleSoft?

  • Connect and Integrate Everything.
  • Unleash the Power of the Cloud.
  • Efficient, Intelligent Supply Chain.
  • Reduce Cost & Complexity.
  • End-to-End, Real-Time Visibility.
  • Exceptional Customer Experiences.
  • Optimize Data & Insights.
  • Accelerate Innovation & Growth.
  • Functionality. Asynchronous Messaging.
  • Integration. Application Integration.
  • Management. Policies and Controls.
  • Development. API Testing.
  • Collaboration. Design Management.

How to create First Mule Application?

Steps for Creating Mule Application:
  • The very first step for creating Mule application is to create a new project. It can be done by following the path FILE -> NEW -> Mule Project as shown below -

  • First Mule Application
  • Naming the Project After clicking on the new Mule Project, as described above, it will open a new window asking for the project name and other specifications. Give the name of the Project, 'APP1' and then click on the finish button.

  • First Mule Application
  • Once you click on the Finish Button, it will open the workspace built for your MuleProject namely 'APP1'.

  • First Mule Application
  • Configuring the Connector Here, we are going to build a simple Mule application for HTTP Listener. For this, we need to drag the HTTP Listener connector from Mule Palette and drop it to the workspace as shown below -

  • First Mule Application
  • Now, we need to configure it. Click on the green color + sign after Connector configuration under Basic Settings as shown above.

  • First Mule Application
  • On clicking ok, it will take you back on HTTP Listener property page. Now we need to provide the path under General Tab. In this particular example, we have provided /FirstAPP as path name.

  • First Mule Application
  • Now, we need to take a Set Payload connector. We also need to give its value under Settings tab as follows -

  • First Mule Application

What are the components in MuleSoft?

  • Adobe Marketo Connector 3.0
  • AJAX Connector 3.9
  • Amazon EC2 Connector 2.4
  • Amazon Kinesis Connector.
  • Amazon S3 Connector 5.6
  • Amazon SNS Connector 4.4
  • Amazon SQS Connector 5.10
  • AMQP Connector 1.7

What is Subflow in mule?

A subflow can be called by the flow-reference element of Mule. When the main flow (calling) calls the subflow using the flow-reference element, it passes the whole message structure (message properties, payload, attachments, etc) and the context (session, transaction, etc). In the same way, when the processing of the message is done in the subflow, the complete message and context are returned to the main calling flow. In other words, everything in the subflow behaves as if it were in the same flow. It's important to note that the message is executed in the same thread.Subflows can be used when some block of code (components) can be reused across the application and you don't want to handle the exceptions of the subflow separately from the main calling flow.

How does RabbitMQ compare to Mule.

Mule is an ESB (Enterprise Service Bus).RabbitMQ is a message broker.
A message broker is a lower level component which enables you as a developer to relay raw messages between publishers and subscribers, typically between components of the same system but not always.


List types of variables in MuleSoft.

Types of variables in MuleSoft are:
  • Flow Variable - It is used to either set or removes variables tied to a particular message in the current flow.
  • Record Variable - It is used for batch processing flows.
  • Session Variable - This variable is used to either set or remove variables tied to a particular message for the complete lifecycle.

Explain Mule ESB?

Mule, the runtime engine of Anypoint Platform, is a lightweight Java-based enterprise service bus (ESB) and integration platform that allows developers to connect applications together quickly and easily, enabling them to exchange data.An Enterprise Service Bus (ESB) is a type of software platform known as middleware, which works behind the scenes to aid application-to-application communication. Think of an ESB as a "bus" that picks up information from one system and delivers it to another.
Increasing organizational agility by reducing time to market for new initiatives is one of the most common reasons that companies implement an ESB as the backbone of their IT infrastructure. An ESB architecture facilitates this by providing a simple, well defined, "pluggable" system that scales well.


What is the benefit of using Mule ESB?

Mule ESB is an integration framework that is lightweight and highly scalable. It enables developers in starting small applications and also in connecting different applications. With Mule managing the exchanges between components and applications transparently and ESB taking care of a variety of applications, it is easy to integrate third-party applications with the help of Mule.

Mule ESB


What Difficulties Mule Does Encompass?

Transport: applications can accept input from a variety of means, from the file system to the network.
Data format: speaking the right protocol is only part of the solution, as applications can use almost any form of representation for the data they exchange.
Invocation styles: synchronous, asynchronous, or batch call semantics entail very different integration strategies.
Lifecycles: applications of different origins that serve varied purposes tend to have disparate development, maintenance, and operational lifecycles.


Name the various kinds of Primitives that are used in Mediation.

The following are the various kinds of primitives in mediation:
  • Endpoint Lookup
  • Service Invoke
  • DB lookup
  • Data Handler
  • Type Filter
  • Message Element Setter
  • Custom MediationFan-out
  • Fan-in
  • Header Setters
  • Message Logger
  • Even Emitter
  • XSLT
  • BO MapMessage Filter
  • Fail
  • Stop
  • Sub Flow

What is the difference between flow and Subflow in mule?

Subflow always processes messages synchronously but inherits processing strategy and exception handling strategy from the calling flow. It can be used to split common logic and be reused by other flows. Private flow does not have source define. Also they have their own exception handling strategy.

What are mule flows?

A Mule application basically contains one or more flows. Mule flows start processing a message when it is received by inbound endpoints. This flow either contains all the processing stages or routes the message to other flows or sub-flows to perform a specific task.
A flow is a connected collection of Mule components.It usually consists of an inbound endpoint component (from where a message originates), and an outbound endpoint component.

What is Service layer in Mule?

A Mule service is composed of all the Mule entities involved in processing particular requests in predefined manners. A service is defined by a specific configuration. This configuration determines the different elements, from the different layers of responsibility, that will be mobilized to process the requests that it will be open to receive. Depending on the type of input channel it uses, a service may or may not be publicly accessible outside of the ESB.

See Also

Spring Boot Interview Questions Apache Camel Interview Questions Drools Interview Questions Java 8 Interview Questions Enterprise Service Bus- ESB Interview Questions. JBoss Fuse Interview Questions Angular 2 Interview Questions