1. What is Mulesoft? Answer: MuleSoft provides the most widely used integration platform (Mule ESB & CloudHub) for connecting SaaS & enterprise applications in the cloud and on-premise.
2. What is Shared Resource in Mule and how they have been used? Answer: We can make connectors as a reusable component by defining them as common resources and expose them to all applications deployed under the same domain, these resources are known as shared resources. These shared resource needs to be defined inside Mule Domain Project and then referred to each of the projects that are meant to use the elements in it.
3. What is a Web service API? Answer: An API (Application Programming Interface) is the means by which third parties can write code that interfaces with other code. A Web Service is a type of API, one that almost always operates over HTTP (though some, like SOAP, can use alternate transports, like SMTP).
4. What are various types of Exception Handling? Answer: 1. Choice Exception Handling. 2. Catch Exception Handling. 3. Rollback Exception Handling. 4. Global Exception Handling. 5. Default Exception Handling.
5. What Difficulties Mule Does Encompass? Answer: 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.
6. Why Mule Was Designed? Answer: Mule’s core was designed as an event-driven framework combined with a unified representation of messages, expandable with pluggable modules. These modules would provide support for a wide range of transports or add extra features, such as distributed transactions, security, or management. The mule was also designed as a programmatic framework offering programmers the means to graft additional behavior such as specific message processing or custom data transformation.
7. Why Spring-driven Configuration Builder Is Important Than Script Builder? Answer: The advantages of Spring-driven configuration builder It is the most popular — you are more likely to find examples using this syntax. It is the most user-friendly — Spring takes care of wiring together all the moving parts of the ESB, something you must do by hand with a script builder. It is the most expressive — dedicated XML schemas define the domain-specific language of Mule, allowing you to handle higher-level concepts than the scripting approach does.
8. How can you change the runtime changes using mediation primitive? Answer: We have a future called Promotable properties in ESB. We can configure this future while development. Then we can make it changed at runtime without restarting the server it can be published.
9. What are all the configurations required for JDBC Adapter implementation? Answer: Data Source needs to be created and needs to configure with DB. If we have security, then need to created security authentication.
10. What is the difference between ESB and JMS? Answer: ESB provides the middleware and interfaces that allow businesses to connect their applications without writing code. JMS provides messaging capability and facilitates communication between the modules/applications.
11. What is Mule ESB? Answer: Mule ESB is a Java-based enterprise service bus (ESB) and integration platform, a developer can connect their application with ESB. Mule use service-oriented architecture. Apart from the different technologies the applications use, including JMS, Web Services, SMTP, HTTP. The advantage of ESB, it allows communicating different application. Messages can be any format SOAP to JSON. Mule ESB Development provides a messaging framework that enables the exchange of data among application.
12. What is RAML? Answer: RAML stands for RESTful API Modeling Language is a YAML-based language for describing RESTful APIs. It provides all the information necessary to describe RESTful or practically RESTful APIs. RAML is similar to WSDL, it contains endpoint URL, request/response schema, HTTP methods, and query and URI parameter.
13. Why we use RAML? Answer: RAML helps the client know, what the service is and how all the operations can be invoked. RAML helps the developer in creating the initial structure of this API. RAML can also be used for documentation purpose.
14. What Is Endpoint In Mule? Answer: An endpoint represents the specific usage of a protocol, whether it is for listening/polling, reading from, or writing to a particular target destination. Hence it controls what underlying entities will be used with the connector they depend on. The target destination itself is defined as a URI. Depending on the connector, the URI will bear a different meaning; for example, it can represent a URL or a JMS destination.
15. Explain ESB Integration core principles? Answer: Transformation – Data transformation between canonical data formats and specific data formats required by each ESB connector. Transportation – Transport protocol negotiation between multiple formats. Such as HTTP, JMS, JDBC. Mediation – Providing multiple interfaces for the purpose of a) supporting multiple versions of a service for backward compatibility or alternatively, b) to allow for multiple channels to the same underlying component implementation. This second requirement may involve providing multiple interfaces to the same component, one legacy interface (flat file) and one standard compliant (SOAP/XML) interface. Non-functional consistency – For a typical ESB initiative, this can include consistency around the way security and monitoring policies are applied and implemented.
16. What Is the Transformer In Mule? Answer: A transformer takes care of translating the content of a message from one form to another. It is possible to chain transformers to cumulate their effects. Transformers can kick in at different stages while a message transits through a service.
17. What is the Correlation Context? Answer: Correlation Context: Used when Mediation primitives want to pass values from the request flow to the response flow. Used to pass values from the request message onto the response.
18. Difference between Callout and Service Invoke? Answer: Service Invoke: The Service Invoke primitive is used to make a service request in either a request or response mediation flow. The service may be Request/Response or One-Way. Multiple instances of the Service Invoke primitive are permitted in a flow, allowing a series of service invocations to be performed.
Callout: The Callout receives the message and calls the requested service and operation. There is a Callout node for each connected target operation in the mediation flow.
– If the call is successful, the Callout Response node in the response flow receives the response message.
– If the call is unsuccessful, the Callout can be set to retry service invocations depending on the type of fault received.
19. What is Flow Processing Strategies? Answer: Synchronous Flow Processing Strategy, Queued Flow Processing Strategy, Asynchronous Flow Processing Strategy, Thread Per Processing Strategy, Queued Asynchronous Flow Processing Strategy, Non-blocking Flow Processing Strategy, Custom Processing Strategy, Rollback Exception Handling.
20. What are the different ESBs in the market? Answer: There are various ESB’s available in the market. Some are opensource, some licensed: 1. Talend 2. Mule ESB 3. JBoss Fuse ESB
21. What are the advantages of RESTful web services? Answer: Advantages of RESTful Web Services Fast: RESTful Web Services are fast because there is no strict specification like SOAP. It consumes less bandwidth and resource.
Language and Platform independent: RESTful web services can be written in any programming language and executed in any platform.
Can use SOAP: RESTful web services can use SOAP web services as the implementation.
Permits different data format: RESTful web service permits different data format such as Plain Text, HTML, XML, and JSON.
22. What are the advantages of using an ESB? Answer: Provides a way for endpoints to connect to each other without having to directly talk to each other. It simplifies the communications for the endpoints as they only have to conform to a standard communication interface, the bus.
An ESB provides a single place to get some key endpoint metrics: frequency, availability, and performance.
An ESB tends to provide more than one communication interface. However, a developer-only needs to choose the easiest one to get and receive the data from the bus.
23. What is caching and why to use it? Answer: Caching is a concept with is used to store frequently used data in the memory, file system or database which saves processing time and load if it would have to be accessed from original source location every time.
24. How to select an ESB? Answer: Usability: How complicated is the installation process? The learning curve of the ESB should not belong. Maintainability: How to monitor the product? If any GUI terminal is available for monitoring the services. Community: Is there an active community for the ESB. Various discussion forums, tutorials, etc.(Mulesoft Training ) Enterprise Support- Is the product support reliable. What services are available. Flexibility: Can the ESB be configured to meet the business requirements. Reliability: The reliability of the ESB. Its current users and various case studies if available. Cost: The cost of the ESB. Its Licence policies. Support costs. etc.
25. What is Mule Cache Scope and what are its storage types? Answer: Caching in Mule ESB can be done by Mule Cache Scope. Mule Cache Scope has 3 storage types –
In-memory: This store the data inside system memory. The data stored with In-memory is non-persistent which means in case of API restart or crash, the data been cached will be lost.
Configuration Properties: Store Name Maximum number of entries TTL (Time to live) Expiration Interval Managed-store: This stores the data in a place defined by ListableObjectStore. The data stored with Managed-store is persistent which means in case of API restart or crash, the data been cached will no be lost.
Configuration Properties: Store Name Maximum number of entries TTL (Time to live) Expiration Interval Persistence (true/false) Simple-test-file-store: This stores the data in a file. The data stored with Simple-test-file-store configuration is persistent which means in case of API restart or crash, the data been cached will no be lost.
26. Do you have any particular areas of interest or ability? Answer: Talk to the interviewer about your strengths and be sure to highlight any particular skill that you excel in. It’s a great idea, if you can, to highlight specific skills that may be listed on the company’s job posting/job description. If there is a related area of interest where you’d like to expand your skills, you can mention those as well.
27. What is ESB? Answer: 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.
28. What Is Bridge Component In Mule? Answer: A bridge component is used to pass the messages from the inbound router to the outbound one. A bridge is a neutral component: it does not perform any action or modify messages that it processes.
29. What is Transient Context? Answer: 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 a response and the original message stored in the transient context.
30. Why Mule ESB? Answer: Mule ESB is a lightweight open source framework but highly scalable, allowing you to start the small application and connect multiple applications. Mule manages all the interactions between applications and components transparently, ESB will take care of the multiple application, we can easily integrate third-party application using Mule.
31. How can you implement a loop in mediation? Answer: By using Fan-in and Fan-out primitive.
32. What Is a Router In Mule? Answer: Routers play a crucial role in controlling the trajectory a message will follow when it transits in Mule. They are the gatekeepers of the endpoints of service, taking care of keeping messages on the right succession of tracks so they can reach their intended destinations. Certain routers act like the big classification yards: they can split, sort, or regroup messages based on certain conditions.
33. What is RAML and why we use it? Answer: RAML – RESTful API Modeling Language RAML is similar to WSDL, it contains endpoint URL, request/response schema, HTTP methods, and query and URI parameter.
RAML helps the client (a consumer of the service) know, what the service is and what/how all operations can be invoked.
RAML helps the developer in creating the initial structure of this API. RAML can also be used for documentation purpose.
34. What are the Message Sources in Mule ESB? Answer: Message sources in Mule are usually Anypoint Connectors, elements which provide connectivity to a specific external source, either via a standard protocol (such as HTTP, FTP, SMTP) or a third-party API (such as Salesforce.com, Twitter, or MongoDB). REST stands for Representational State Transfer or RESTful web service. REST is a client-server architecture which means each unique URL is a representation of some object or resource. Any REST API developed uses HTTP methods explicitly and in a way that’s consistent with the protocol definition. This basic REST design principle establishes a one-to-one mapping between creating, read, update, and delete (CRUD) operations and HTTP methods. According to this mapping:
1. To create a resource on the server, use POST. 2. To retrieve a resource, use GET. 3. To change the state of a resource or to update it, use PUT. 4. To remove or delete a resource, use DELETE.
35. What Are Configuration Builders In Mule? Answer: Mule uses configuration builders that can translate a human-authored configuration file into the complex graph of objects that constitutes a running node of this ESB. The main builders are of two kinds: a Spring-driven builder, which works with XML files, and a script builder, which can accept scripting language files.
36. What are the different types of Primitives used in Mediation? Answer: These are the different types of primitives in mediation: 1. Message Filter 2. Type Filter 3. Endpoint Lookup 4. Service Invoke 5. Fan-out 6. Fan-in 7. XSLT 8. BO Map 9. Message Element Setter 10. DB lookup 11. Data Handler 12. Custom Mediation 13. Header Setters 14. Message Logger 15. Even Emitter 16. Stop 17. Fail 18. Sub Flow
37. What is a REST web service? Answer: Representational State Transfer (REST) is an architectural style that specifies constraints, such as the uniform interface, that if applied to a web service induce desirable properties, such as performance, scalability, and modifiability, that enable services to work best on the Web.
38. Various types of variables in mule?Answer: 1. Record Variable. 2. Flow Variable. 3. Session Variable.
39. Why Mule is preferred than other ESB implementations? Answer: Mule is lightweight but highly scalable, allowing you to start small and connect more applications over time. The ESB manages all the interactions between applications and components transparently, regardless of whether they exist in the same virtual machine or over the Internet, and regardless of the underlying transport protocol used.
Several commercial ESB implementation provides limited functionality or built on top of an existing application server or messaging server, locking you into that specific vendor. Mule is vendor-neutral, so different vendor implementations can plug into it. You are never locked in to a specific vendor when you use Mule.
40. When do we need ESB? Answer: Mule and other ESBs offer real value in scenarios where there are at least a few integration points or at least 3 applications to integrate. They are also well suited to scenarios where loose coupling, scalability, and robustness are required.
41. How Mule ESB works? Answer: Mule is based on the concept of Event-Driven Architecture (EDA), works by responding to messages initiated by external resources (that is, events). Mule applications accept and process events as messages through several message processors plugged together in a flow. Alternatively, large or streaming messages can be processed as records in a batch job. Every Mule flow contains a series of message processors that accept, then process messages. Mule applications usually contain multiple linked flows and/or batch jobs, which, in combination, perform the integration required for your use case.
42. Explain Flow in Mule ESB? Answer: A flow is a construct within which you link together several individual elements to handle the receipt, processing, and eventual routing of a message.
Flow is a sequence of message-processing events. A message that enters a flow may pass through a wide variety of processors. In the example diagram below, Mule receives the message through a request-response inbound endpoint, transforms the content into a new format, and processes the business logic in a component before returning a response via the message source.
43. Explain Batch Jobs in Mule ESB? Answer: A batch job is a top-level element in Mule ESB which exists outside all Mule flows. Batch jobs split large messages into records which Mule processes asynchronously; 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.
A batch job executes when triggered by either a batch executor in a Mule flow or a message source in a batch-accepting input. when triggered, Mule creates a new batch job instance. When all records have passed through all batch steps, the batch job instance ends and the batch job result can be summarized in a report to indicate which records succeeded and which failed during processing.
44. What are Message Sources is Mule ESB? Answer: Message sources in Mule are usually Anypoint Connectors, elements which provide connectivity to a specific external source, either via a standard protocol (such as HTTP, FTP, SMTP) or a third-party API (such as Salesforce.com, Twitter, or MongoDB.)
45. Explain Mule Expression Language (MEL)? Answer: MEL is a lightweight, Mule-specific expression language that you can use to access and evaluate the data in the payload, properties, and variables of a Mule message. Accessible and usable from within virtually every message processor in Mule, MEL enables you to quickly and elegantly filter, route, or otherwise act upon the different parts of the Mule message object.
46. How did you find MuleSoft? Answer: I found MuleSoft a little bit by coincidence. My wife got a job at UCSF so we moved here from Stockholm and while waiting for the paperwork to process I found out that MuleSoft’s HQ was located in San Francisco. Since I had tested Mule ESB at my previous job to build integrations and had liked the product, I thought I would apply.
47. What is REST? Answer: REST stands for Representational State Transfer or RESTful web service. REST is a client-server architecture which means each unique URL is a representation of some object or resource. Any REST API developed uses HTTP methods explicitly and in a way that’s consistent with the protocol definition. This basic REST design principle establishes a one-to-one mapping between creating, read, update, and delete (CRUD) operations and HTTP methods. According to this mapping:
To create a resource on the server, use POST. To retrieve a resource, use GET. To change the state of a resource or to update it, use PUT. To remove or delete a resource, use DELETE. Example: If we want to create a REST service that fetches the record of a customer then our URI will be: – GET where the HTTP method is GET, Resource is customer And URI parameter is customer which depicts for which resource we want to fetch the records
48. What are the different types of variables in mule? Answer:
- Flow Variable
- Session Variable
- Record Variable
49. What are Shared Resources in Mule and how are they been used? Answer: We can make connectors as a reusable component by defining them as common resources and expose them to all applications deployed under the same domain, these resources are known as shared resources. These shared resource needs to be defined inside Mule Domain Project and then referred to each of the projects that are meant to use the elements in it.
50. What are all the Primitives used in Mediation? Answer: We have different types of primitives in mediation.
- Message Filter
- Type Filter
- Endpoint Lookup
- Service Invoke
- BO Map
- Message Element Setter
- DB lookup
- Data Handler
- Custom Mediation
- Header Setters
- Message Logger
- Even Emitter
- Sub Flow
51. Different between SDO and SMO? Answer: SDO: Service Data Object is the representation of the variable or Object.
SMO: The SMO model is a pattern for using SDO Data Objects to represent messages
52. A most embarrassing moment? Answer: I once got locked out of a sauna in the middle of winter (in Sweden), without any clothes. My friend managed to get a hold of a briefcase-sized mobile phone (this was a while ago) and called for someone with an additional key to let us in again.
53. What’s a typical day like for you? Answer: I help MuleSoft customers connect applications using CloudHub. I would say that on average I spend maybe 60% of my time in Mule Studio and the rest of the time with meetings, project planning, documentation and that sort of thing