Are you preparing for MuleSoft Certified Developer Certification and looking for some guidelines and material about how to prepare then you have reached the right place. During preparing for MuleSoft Certified Developer Certification, I captured notes. I thought let me share everyone so that it will be beneficial to whoever preparing for the certification. This is the second part of the notes. You can visit the previous part if you have not visited yet here - How to prepare for MuleSoft Certified Developer Certification - Part I. You can visit the third part of the notes here - How to prepare for MuleSoft Certified Developer Certification - Part III.
Item |
Notes |
Deploying and
managing APIs |
1. Deployment stages a. Deployed as web service
using Runtime Manager b. Proxy application is
deployed using API Manager and polices are created for security and
governance c. Monitor and analyze usage
during runtime manager and visualizer tools 2. Deployment options a. CloudHub - PaaS - Amazon ws b. Customer Hosted Mule
Runtime 3. Deployment tools a. Embedded connection to
runtime manager in Anypoint Studio b. Runtime Manager in Anypoint
platform 4. Worker is
dedicated VM that runs Mule application It runs in a separate
container It is deployed and monitored independently It runs in a specific worker
cloud in a region It runs a single application in
cloudhub An application can be deployed
in multiple workers 5. Application can be
scaled vertically by changing worker size 6. Application can be
scaled horizontally by adding multiple workers 7. API Proxy control access to web service,
restrict access and usage through API gateway. Proxy Endpoint -> API Proxy
(API Gateway) -> Backend API API proxy created and deployed to API Gateway using API
manager Proxy is used to create policy
and service level agreement, migrate API between env, grant or deny access to
API and review API analytics 8. API Gateway API Gateway is responsible for running and
managing API Proxy. API Gateway also authorize which traffic to
pass through and access API by enforcing policies API Gateway meters traffic and logs and
analytical data 9. API auto discovery allows a deployed
application to connect with API manager to download policies and act as its
own API proxy 10. Mule application can run on a clouldHub
worker - at most one. 11. API proxy application is not responsible
to determine which response Mule event is allowed. 12. Mule runtime uses embedded API Gateway
to enforce policies and limit access to APIs |
Accessing and
modifying Mule events |
1. The parameters
send in URL are passed as query parameters in the attribute section of the header 2. By default successful HTTP response
contains Status code - 200 Body - Payload Modify response by modifying
body, adding a custom header, customize HTTP status code and reason code 3. DataWave is
case-sensitive expression language 4. DataWave can be
used to retrieve information from Attributes, Payload, and variables from Mule
event. 5. Type of Datawve
expression Standalone script - generated
using transform Message Inline expression - used to
set value of properties in the event processor or global configuration. Enclosed
in #[] 6. Using DataWave
expression, we can access all of the parts of Mule event including
attributes, payload, variables, Mule Flow, Mule Application, Mule instance
and Server e.g Message
information - #[message.payload] attributes -
#[attributes.queryParams.param1] payload - #[payload] variables - #[vars.foo] Examples #[message.attributes.method]
= #[attributes.method] #[attributes.headers.host] #[attributes.headr['user-agent'] #[message.payload.id]=#[payload.id]=#[payload['id']] #[payload.item] 7. Selectors in
DataWave expression . -> single value selector []. -> Indexed selector .* -> Multi value selector .. -> Descendants selectors 8. Core module
functions are always available to use. Other modules need to be imported before use. 9. Attributes are available only in the request scope. If we need to refer to any value within flow then we need to setup it in a variable. 10. We can access mule event data at design time using datasense. We can access mule event data at runtime using console and debugger. 11. Attributes are
replaced with new attributes after an outbound HTTP request is made. 12. Scope of
variables and attributes The variables are accessible
in childflow All the attributes passed to
childFlow are removed or replaced 13. Variables set
using a Set Variable operation is not accessible on the server. |
Structuring Mule
applications |
1. Flow without source is called private flow. Private flow has an exception section 2. Private flow only
accessible within application only 3. Subflow is a scope that has only a processor section Normally used to create a repeatable group of the processor. Subflow does not have an exception section 4. Subflow can be
created a. Manually by dragging scope in canvas -
Flow reference creation is required b. Dragging group of the processor from one
flow and adding in another flow - Flow reference creation is not required as
it generates automatically 5. VM connectors are
used to make asynchronous calls. VM connectors can be used to
communicate with another application running in the same Mule domain Queue types: a. Transient - faster but less
reliable b. Persistent - reliable but
slower 6. Domain project
only can be hosted to customer hosted Mule runtime and not ClouldHub 7. Application
properties can be configured as .yaml or .properties file Properties can be encrypted Properties can be overridden
by system properties when deploying to a different environment 8. Accessing properties
in below way a. In global elements or event
processors ${db.port} B. In DataWeave expression {port:
p('db.port')} 9. Metadata
(appication-types.xml) can be accessed a. From Transform Message
component b. From the Metadata tab in the
properties view for event processes c. From a project menu in
package explorer 10. VM connector
allow a flow to pass events to another flow asynchronously. 11. pom.xml keep
track of dependencies 12. ClouldHub workers
CANNOT download all possible project dependencies a project may contain 13. ${http.port}
property can be defined and used in Mule application to allow an HTTPS
listener to be accessed by external web clients 14. ParentFlow with
variable has childFlow The variable is accessible in
childFlow and can be changed. The changes are seen back in parentFlow |