MuleSoft Certified Integration Architect Exam (Latest 2024/ 2025 Update) Questions and Verified Answers |100% Correct| Grade A

MuleSoft Certified Integration Architect Exam (Latest 2024/ 2025 Update) Questions and Verified Answers |100% Correct| Grade A

MuleSoft Certified Integration Architect
Exam (Latest 2024/ 2025 Update) Questions
and Verified Answers |100% Correct| Grade
A
Q: What are typical types of documentation in an integration solution architecture?
Answer:

  • Required use cases
  • Views of systems and sub-systems
  • Views of data and interfaces
  • Functional requirements and non-functional requirements and SLAs
  • Views of interactions and design decisions
  • Key decisions, requirements and tradeoffs
    Q: What is the 4+1 methodology?
    Answer:
  • Is one common approach how to illustrate views for software and systems
  1. Logical view: Architecture diagram, relationships between systems and stakeholders
  2. Process view: API-led diagram, Information about the movement of information, Documents
    success and failure paths, Sequence and activity diagrams
  3. Development view: Data mapping, testing strategy, Example flows in Mulesoft
  4. Physical view: Deployment diagrams, What artefacts are running on each node, how the
    different pieces are connected, high level topology: databases, runtimes, workers, LBs, firewalls,
    VPCs
    +1 = The plus 1 illustrates the scenarios from an end user perspective –> User Stories
  • Design phase: Process view, development view, physical view

Q: What documentation is also required beside 4+1 view?
Answer:
Maintenance, operations and security documentation
Q: What are Mule applications under the hood?
Answer:
Java-based applications based on Java Spring configured by Mule application XML files
Q: Which 4+1 view is created to direct deployment and maintenance phases?
Answer:
Physical view:

  • Shows the process and the nodes that are running
  • View on CI/CD
    Q: What is a Mule application?
    Answer:
  • It runs in a Java virtual machine (JVM)
  • It is triggered by internal or external events or processes and routes to other components or
    endpoints
    Q: How does a typical Mule flow looks like?
    Answer:

Q: What are the main elements for a Mule event?
Answer:
Mule events can be passed or copied between event processors in the flow

  • Message: The main data object carried between event processors
  • Attributes: Metadata contained in the message header
  • Payload: Core information of the message
  • Variables: Stores current event state for use by later event processors
  • Error message: Generates by the flow
    Q: What are the three types of flows in Mule 4?
    Answer:
  1. Regular
  • Starts with a message source
  • Can have its own error handler
  1. Private flow
  • No message source
  • Can only be triggered from within the Mule application
  1. Sub flows
  • No message source like a private flow
  • No Error handling (Errors bubble up into the parent flow)
    Q: What happens if you route a message with a flow reference to a sub flow?
    Answer:
    The flow message is processed synchronously
    Q: How can you trigger flows asynchronously from a parent flow?
    Answer:

With the Async scope:
It will copy the message and process it asynchronously in the parent and sub-flow
For example if you want to send e massage to Splunk you can use the async scope
Q: With which component can you trigger flows beside an event source?
Answer:
Scheduler:

  • Fixed frequency: Poll every 1000 mili sec
  • Cron: You can specify an event to occur just once at a certain specific date or at some
    frequency
    When you enable CRON you can see the application on cloud hub an trigger it in the run time
    manager
  • runtime manager -> schedules
  • You can also trigger flows directly from connectors with internal schedulers: Database, File,
    FTP, SFTP on Table Row and on New or Update File
    Q: Which connectors have internal scheduling options?
    Answer:
  • Database: on Table Row
  • File, FTP, SFTP: On New or Update File
    Q: What are the advantages of using connectors?
    Answer:
  • Facilitate integration of third-party systems such as Salesforce, Google, Facebook, Workday
  • No need to study and code to underlying protocol or security by the third party system
    Powered by https://learnexams.com/search/study?query=

What characterises integration solutions across an enterprise?

  • Various systems and applications to connect
  • Various stakeholders
  • Conflicting goals
  • Stakeholders have different assumptions, understandings and language
  • Systems have different requirements, reliability, availability and performance

What is the most important objective of an integration solution?
To address the in-scope requirements of stakeholders related to the scenarios and use cases

Identify stakeholders involved in an integration project?

  • Project sponsor: drives the project
  • Architects: Responsible for implementation
  • System integrators and external stakeholders: responsible for external systems
  • Auditors: Verify compliance, policies, integrity
  • Users: Enduser of the system

Identify stakeholders related to Anypoint Platform?

  • Users
  • Administrators
  • Developers and Architects
  • System integrators and external stakeholders
  • Analysts and Managers: responsible for managing the scope, value, costs etc.

What are the main areas which an architect has to deal with?

  • Non-technical business vs. technical stakeholders
  • End users
  • Development vs. deployment vs. runtime operations stakeholders
  • Implementers vs. managers. vs. executives

What is Mulesofts point of view on integration solution architectures vs. enterprise architectures?

  1. Integration solutions architecture: Documents individual integration initiatives for example message-based integration, batch processing, ETL, form of integration between systems
  2. Enterprise architecture: Application network of an organisation. API-Led connectivity, layering, reusing, combining API-Led

What is Mulesoft’s OBD = Outcome based delivery approach?

  • 90% of the projects are not reaching their goals
  • After few months of production the customer can not use the platform because the Organisation is not enabled enough
  1. Business outcomes = What do we deliver?
  2. Technology delivery = How can we use Anypoint Platform?
  3. Org enablement = How can we enable C4E and training?

How are user stories usually documented?

What are the two kinds of requirements which are discovered from user story perspective?

  1. Functional requirements:
  • Triggering events
  • Acceptance criteria
  • Expected errors and error handling
  1. Non-functional requirements:
  • May be invented by industry or other external authorities
  • Are constrains on the requirements

What are typical types of documentation in an integration solution architecture?

  • Required use cases
  • Views of systems and sub-systems
  • Views of data and interfaces
  • Functional requirements and non-functional requirements and SLAs
  • Views of interactions and design decisions
  • Key decisions, requirements and tradeoffs

What is the 4+1 methodology?

  • Is one common approach how to illustrate views for software and systems
  1. Logical view: Architecture diagram, relationships between systems and stakeholders
  2. Process view: API-led diagram, Information about the movement of information, Documents success and failure paths, Sequence and activity diagrams
  3. Development view: Data mapping, testing strategy, Example flows in Mulesoft
  4. Physical view: Deployment diagrams, What artefacts are running on each node, how the different pieces are connected, high level topology: databases, runtimes, workers, LBs, firewalls, VPCs

+1 = The plus 1 illustrates the scenarios from an end user perspective –> User Stories

  • Design phase: Process view, development view, physical view

What documentation is also required beside 4+1 view?
Maintenance, operations and security documentation

What are Mule applications under the hood?
Java-based applications based on Java Spring configured by Mule application XML files

Which 4+1 view is created to direct deployment and maintenance phases?
Physical view:

  • Shows the process and the nodes that are running
  • View on CI/CD

What is a Mule application?

  • It runs in a Java virtual machine (JVM)
  • It is triggered by internal or external events or processes and routes to other components or endpoints

How does a typical Mule flow looks like?

What are the main elements for a Mule event?
Mule events can be passed or copied between event processors in the flow

  • Message: The main data object carried between event processors
  • Attributes: Metadata contained in the message header
  • Payload: Core information of the message
  • Variables: Stores current event state for use by later event processors
  • Error message: Generates by the flow

What are the three types of flows in Mule 4?

  1. Regular
  • Starts with a message source
  • Can have its own error handler
  1. Private flow
  • No message source
  • Can only be triggered from within the Mule application
  1. Sub flows
  • No message source like a private flow
  • No Error handling (Errors bubble up into the parent flow)

What happens if you route a message with a flow reference to a sub flow?
The flow message is processed synchronously

How can you trigger flows asynchronously from a parent flow?
With the Async scope:

It will copy the message and process it asynchronously in the parent and sub-flow

For example if you want to send e massage to Splunk you can use the async scope

With which component can you trigger flows beside an event source?
Scheduler:

  • Fixed frequency: Poll every 1000 mili sec
  • Cron: You can specify an event to occur just once at a certain specific date or at some frequency

When you enable CRON you can see the application on cloud hub an trigger it in the run time manager

  • runtime manager -> schedules
  • You can also trigger flows directly from connectors with internal schedulers: Database, File, FTP, SFTP on Table Row and on New or Update File

Which connectors have internal scheduling options?

  • Database: on Table Row
  • File, FTP, SFTP: On New or Update File

What are the advantages of using connectors?

  • Facilitate integration of third-party systems such as Salesforce, Google, Facebook, Workday
  • No need to study and code to underlying protocol or security by the third party system
  • Speed up development and deployment
  • Make mule applications easier to maintain

How can you share global elements across Mule applications?
Mule Domain project:

  • Mule domains are only supported in customer-hosted runtime planes
  • One or more application can be associated with the Mule domain
  • A Mule domain can be deployed to Mule runtimes along with Mule applications

What is important about Mule Domains when you want to use them?
They are only supported in customer-hosted runtime planes

What changed in Mule 4 compared to Mule 3?

  1. Messages are now called events and the structure has changed
  2. Inbound and outbound properties are called attributes
  3. Each Mule 4 connector explicitly sets its own outbound properties
  4. Session variables are removed and instead each connector passes data over transports as Payload, Headers attachments
  5. Variables are now stored and passed around with the Mule event

How did flow change on Mule 4?
We don’t use processing strategies anymore in Mule 4. Everything is auto tuned

What has changed between Mule 4 and Mule 3 looking at the connectors?
In Mule 4 the connectors are not bounded anymore to the runtime

  • Each connector and many other components are separated out into independent extension libraries called modules

In Mule 3 you had to wait for the new runtime if a new connector was released

How are modules configured in a Mule application?

  • Each module is configured as a Maven dependency in the pom.xml file

What is supported by the HTTP connector?

  • Inbound requests over HTTP and HTTPS to trigger a flow
  • Send an HTTP or HTTPS request in the middle of the flow
  • HTTP 1.0 and 1.1

It does NOT support HTTP 2.0

How are Grizzly libraries used for HTTP connectors?

  • Grizzly is a standard open source library supporting HTTP/S protocols
  • Uses selector threads pool
  • Listeners have a shared selector pool for each Mule app
  • Requesters have a dedicated selector pool for each Mule app

What can you do if a connector is not available?
You can build your own custom connector with Mule 4 SDK

What are the 4 Anypoint Connector types?

  1. Community: Mulesoft or Community written, no license
  2. Mulesoft Certified: Developed by Mulesoft partners and developer community and reviews by Mulesoft
  3. Select: Mulesoft maintains select connectors, To use them you must have an Anypoint Platform subscription
  4. Premium: Premium Connectors like SAP, you need an active CloudHub premium subscription

How does the connector reconnection strategy works?

  • By default a failed connectivity test is just logged and the application starts anyways or continues to run without trying to reconnect
  • A reconnection strategy can be configured to try repeatedly to connect
  • A failsDeploy attribute can be set to true to throw an exception if the reconnection attempts fail which prevents the Mule application from starting

What do you need to consider when writing DataWeave?

  • Use functions like filter in order to improve the performance and do not iterate with loops in order to filter
  • Always use Dataweave type: application/dw in development phase. its easier to debug because its better to read the errors
    At the end you can change the type to application/json or whatever you need

What are types of Mule routers?

  • Choice
  • Scatter-Gather
  • First Successful
  • Round Robin
  • Error handling

What are characteristics of Round Robin?

  • Routes the incoming Mule event to one of its routes
  • A different route is selected each time in looping
  • Each invocation of the Round Robin router is synchronous

Round robin uses object store to remember the last execution

What happens if an error is not handled?
If an error is not handled the error message is logged and the flow processing stops

Where can an error handler be added in a Mule application?

  • Global Error Handler
  • A regular Flow
  • A try scope (sequence of one or more mule event)

An Error Handler can not be added to subflows

What is the difference between on Error Propagate and on Error Continue
Propagate:

  • all processors in the error handling scope are executed
  • At the end of the scope:
    . The rest of the flow that threw the error is not executed
    . The error is re-thrown up to the next level and handled there
  • If the error starts with an HTTP listener it returns Error 5XX response

Continue:

  • All processors in the error handling scope are executed
  • At the end of the scope:
    . The rest of the flow that threw the error is not executed
    . The result of the error handler scope is passed up to the next level as if the flow execution had completed successfully
  • If the flow starts with HTTP listener it returns 2XX response

What happens with an error handling within a transaction?

  • On error propagate:
    The error is thrown up the call stack so the current open transaction is rolled back
  • Continue:
    The error is handled so the current open transaction is committed (no roll back)

Example:
If you write a database on error propagate the previous transaction is rolled back

How does a try scope handle errors?
Acts like a private flow inside the parent flow:

  • Can have its own error handling
  • Unhandled errors bubble up to the parent flow

What is reactive programming?
A programming paradigm that combines the concurrency with event-based and asynchronous systems

  • Mule runtime is based on reactive programming

Example: You get a lot of events and you perform action as soon as you want to perform them
(Pizza example)

What is back-pressure and how is it handled by Mule?
When Salesforce is slowly, the connector will slow down as well

What processing model is used by the Mule 4 runtime?
A non-blocking and reactive processing model:

  • Non blocking is a central theme in reactive principles
  • Non blocking is the norm in Mule 4

What does non-blocking mean?

  • When you make an outbound request the thread will be released back to the grizzly-thread-pool until receiving an answer

What happens if the scheduler interval is faster then the processing of the flow? What do you need to do in this case?
Mule runtime throws an error and loses the message.

You need to set max. concurrency in the flow to: 1

How many global executors do exists to run the tasks in the Mule 4 runtime?
3

What are the three execution types that can be set in an Anypoint connectors source code?

  1. IO_INTENSIVE (Blocking)
  • Transaction scope
  • all blocking IO intensive connectors
  • All technique that blocks the current thread
  1. CPU_INTENSIVE
  • Intensive processesing
  • Dataweave
  1. CPU_LITE
  • Processing that neither blocks or is CPU intensive
  • Routing, filtering, message passing

What is RESTful?

  • Addressable resource:
    A resource is any information or concept that can be named
  • Stateless:
    The server does not store application state
  • Connectedness:
    The server guides the client to change state –> Done by Hypermedia
  • Uniform interface:
    Resources share interface characteristics
  • Idempotency:
    The same HTTP request should always create the same server state

Which HTTP methods are idempotent?

  • Read
  • Updated
  • Delete

Idempotent: It doesn’t change the results no matter how ofter you klick it

What is the difference between SOAP and REST?

  • SOAP focuses on exposing a piece of application logic (not data) as service
  • SOAP is based on the XML and W3C standard
  • SOAP and REST support SSL
  • SOAP focuses on exposing and accessing named operations, while REST focuses on accessing resources via HTTP methods

What is special in Mule 4 talking about streaming? What is streaming?
The Mule 4 automatically streams large data payloads without any special configuration

Steams are data structures which are processed continuously as it arrives

Data will hold in memory before computing

Which connectors support streaming?

  • File
  • FTP
  • DB
  • HTTP
  • Sockets
  • Salesforce

What are the 3 streaming options for connectors in Mule 4?

  1. File stored repeatable streams:
  • By default stores 500 objects in its in-memory buffer (number can be configured)
  • Excess objects are serialised using a Kyro serializer
  1. In-memory repeatable streams
  • Max buffer size 500 objects
  • If streams exceed the max bugger size then the application fails
  1. Non repeatable streams:
  • The input stream is only read once
  • No extra memory or performance overhead compared with repeatable streams

What is an asynchronous processing model?

  • The main thread does not wait for its workers to complete execution
  • Uses branch processing
  • Failure in one of the branches does not impact the main flow
  • Responses from branch processing are not available to the main flow

How can you achieve with a JMS connector synchronous and asynchronous communication?
Synchronous:

  • Publish sends a message to a queue
  • never gets a response back to the message provider

Asynchronous:

  • Publish consume –> Blocks the flow until a response is returned from the JMS provider or the timeout expires

What is the difference between JMS and VM queues?

  • Unlike JMS, VM queues do not use any intermediate message broker
  • Creates and communicates with virtual machine using publish/subscribe module
  • Supports sync and async
  • Supports intra-app and inter-app (in Mule domain) communication

How do you persist data with a VM queue?

  • On customer-hosted Mule runtime: by serializing and storing the content on the disk
  • On cluster of customer-hosted Mule runtime: persistent queues are backed by the Hazelcast distributed data grid
  • On CloudHub: Are stored in a CloudHub service

What is the difference between VM queue and other queues?

  • With VM queues reliability and quality is limited
  • VM queues can be used for specific use cases:
  1. To distribute messages across a cluster of Mule runtimes
  2. For high-performance async communication
  3. To distribute work within the same Mule application across multiple workers
  4. When investment in a JMS broker is not supported (VM is for free)

Describe the batch job processing model?
(only available with Mule Enterprise runtime)

  1. From the input payload a fixed block of records is send to the batch job
  2. All batch records are first queued
  3. Records are taken from the top of the queue one at a time and sent to the first batch step
  4. Several threads may process multiple records in parallel
  5. All batch records will be queues and processed again for batch step 2

Important: It can be that some records are still processed in step 1 and some are already taken to step 2 if threads are available in the pool

What are batch step filters used for?
You can define an “accept Expression” if a record did not fail during the previous batch step

You can configure another filter which handles previously failed records

What are characteristics of BatchJobResult?

  • Contains a summary report about the records processed for the particular batch job
  • Does not include any of the actual processed records or data
  • The payload after a batch job is the original payload before entering the batch job

Which API data types are supported by Mulesoft?

  • JSON and XML
  • REST API RAML data types
  • OpenAPI OAS data types

How can you convert data types from RAML to OAS?
using online tools: apimatic.io

or its done automatically by Mulesoft. Full conversion will be available in the new release

What data types are supported by DataWeave?

What is important to know about Java and DataWeave?

  • Java is generally NOT recommended for data transformations
  • Also other languages: Ruby, JPython, Nashoron etc is not recommenced tu use

However

  • DataWeave can call out to static methods in Java
  • Java classes can be defined in Spring context
  • Mulesoft recommends to encapsulate custom Java transformations in classes
  • Mulesoft promotes separation of concern hence removed the expression component

How do you enrich messages with external payload?
In Mule 4 components have Target and targetValue.

  • A target saves you the step of having to store the previous event payload using a variable event processor
  • The payload from the previous event is then left unchanged
  • The target can also operate on event processor result

What is a common data model and why should it be used?

  • To represent data in new applications that need to communicate with other internal applications
  • When the process of defining a common data model does not delay implementation indefinitely

In Mulesoft you would have:

  • 1 transformation on experience API to the CDM
  • 1 transformation on system API from CDM to external system

What are the scopes a CDM can take place?

  • Just the current project
  • To the business unit
  • To the entire enterprise

What are ways to implement data validation patterns in Mule applications?

  • Choice routers
  • DataWeave Code
  • Validation Modules
  • Catch and Handle Errors

What modules provide validation operations?

  • Validation Module
  • JSON validate schema
  • XML validate schema
  • APIKit, JSON validation, throws SOAP faults
  • Java validate type
  • HTTP request operation, validate response, identify success vs. failure status code

How can you combine validations?
With the All scope

How can you use the validation module without throwing an error?

  • Validation operations can be used directly inside DataWeave code
  • In this case the operation just returns true or false and does not throw an errors

You can use this to write choice router conditions

How can you configure sequential execution in a Mule flow?

  1. set max concurrency of 1
  • This ensures that only one flow instance is processed at any point
  1. For each scope
  • splits a payload into elements and processed them one by one through the components that you place in the scope
  1. For loops

Whar are collections in for each?
Collection = What are the iterable colletions

  • By default for each tries to split the payload into iterable types
  • If the payload is a Java collection it can be done without any configuration
  • If the payload is non-Java you need to specify the iterable collection to use

Why is parallel processing sometimes required?
Problem:

  • In a single flow processors are executed in sequence and each processor execution is dependent on the execution of preceding processor
  • The processor that communicates with an external system might block processing of the current Mule event

Which processors provide parallel processing?

  • Scatter-Gather
  • Async scope
  • VM
  • JMS

What happens if a scatter-gather throws an error?

  • if type: MULE:COMPOSITE_ROUTING
  • The error contains the result of every route
  • Event processing does not continue with the next event
  • Instead the flows error handlers process the error as they would any other error type

What is important for async scopes and what happens with errors in an async scope?

  • Response from the async scope is NOT accessible nor is it returned to the main flow
  • Events are processed inside an Async scope concurrently with the event from the main flow

Errors inside the async scope do not impact the main flow

  • You can use try scope to customize error handling

Which types of testing are relevant for Mule applications?

  • Unit testing: unit specific, functional
  • Integration testing: all interactions
  • Performance testing: Scalability, Reliability, Usage, Workload

What is Before Test in Munit?

  • You can set the Mule event passed to the execution scope

How can you configure that only certain tests are executed?
You can add tags to the Munit tests

What are populate tools for blackbox integration testing?

  • SOAPUI
  • Restlet Client
  • REST-assured

What tools can be used for performance testing?

  • JMeter
  • BlazeMeter

What are the different deployment models that Mulesoft provides?

  • Mulesoft-hosted runtime plane –> cloud based
  • Customer-hosted runtime plane –> provisioned and managed by the customer

For non mulesoft hosted environments like AWS, Azure, PCF
Also on-prem infrastructure, on bare-metal, virtual machines or containers like docker

What are the features of a Mulesoft-hosted runtime plane?

  1. A new virtual machine is automatically provisioned for the new Mule runtime –> called Cloudhub worker
  2. A Mule application can be scaled vertically and horizontally
  3. Mulesoft provides a load balancing service
  4. Mulesoft implements a distributed object store service

What is horizontal and vertical scaling?
Horizontal: The Mule application can be automatically deployed to multiple Cloudhub workers

Vertical: A Mule application can have its worker resized to a larger or smaller vCore size

What is the underlying infrastructure of Cloudhub?
EC2 AWS instance with a Mule runtime with a shared load balancer

–> CloudHub is on AWS

What are Mulesoft iPaas options?

  • Cloudhub
  • Runtime Fabric
  • PCF

What is Runtime Fabric?
It is an additional software provided by Mulesoft to scale out customer-hosted Mule runtimes

  • Mule applications deploy to isolated Mule runtime which run in a docker container
  • The containers can be deployed to any cloud service
  • Provides additional services like zero-downtime redeployment and load balancing

What are the differences between Anypoint control plane on Mulesoft-hosted or Private Cloud Edition?

What are advantages of a Mulesoft-hosted runtime plane?

  1. Each mule runtime is automatically installed in a separate CloudHub worker
  2. No contention for host resources
  3. Automatic upgrades/patches
  4. Globally available
  5. Mulesoft provides security and SLA
  6. Managed by Mulesoft hosted anypoint platform control plane

What could be a reason for the private cloud edition?
For customers with strict regulatory or compliance requirements

What is the difference between Private Cloud Edition and Pivotal Cloud Foundry?

PCE vs. PCF
Same as Anypoint platform except the runtime plane is deployed on PCF instance

–> Like CloudHub, one Mule application per Mule runtime

How does runtime fabric works?

  • Runtime fabric orchestrates and automates the deployment of Mule runtimes into containers in any cloud or on premises
  • Deploy consistently across any cloud or data center
  • Run multiple Mule runtime versions in the same runtime fabric
  • Isolate apps, scale horizontally, redeploy, zero downtime
  • Connect to the control plane hosted by Mulesoft
  • No need to dockerize Mule apps

What are the main differences between CloudHub (CH), Runtime Fabric and Customer-hosted?
Inbound HTTP load balancing: CH, Fabric
No inbound HTTP load balancing: on-prem

VM queues messages are load balanced for deployments to multiple CH workers: CH

VM queues messages are load balanced for deployments to a cluster of Mule runtimes: Fabric, on-prem

Rescale Mule runtimes with zero downtime: CH, Fabric

no rescaling: customer-hosted

What could be factors for deciding to a on-premis option?

  • Regulatory
  • Time-to market
  • IT operations efforts
  • Accessing on-prem data sources
  • Flexibility of deployment across cloud providers
  • Isolation between Mule apps
  • Control over Mule runtime tuning
  • Scalability of runtime plane
  • Roll-out new releases
  • Redeployment with zero downtime

Please provide for each use case appropriated deployment options:

  • Regulatory
  • Time-to market
  • IT operations efforts
  • Accessing on-prem data sources
  • Flexibility of deployment across cloud providers
  • Isolation between Mule apps
  • Control over Mule runtime tuning
  • Scalability of runtime plane
  • Roll-out new releases
  • Redeployment with zero downtime
  • Regulatory: PCE, PCF
  • Time-to market: CH
  • IT operations efforts: CH or Fabric/PCF over PCE
  • Accessing on-prem data sources with high throughput: Fabric, PCE, PCF
  • Flexibility of deployment across cloud providers: Fabric, PCE
  • Isolation between Mule apps: favours bare metal over VM or containers
  • Control over Mule runtime tuning: Hybrid –> Fabric and PCE
  • Scalability of runtime plane: CH, favours automatically provisioning then manual
  • Roll-out new releases: Weekly releases for CH and quarterly for PCE
  • Redeployment with zero downtime: CH or Fabric

What are use cased for saving state in a Mule application?

  1. Between flow executions:
  • To remember state from previous outbound HTTP request
  • To filter out already processed messaged (watermark)
  • To cache unchanged data or responded to speed up response time
  1. Between iterations when processing a collection of elements:
  • Including batch processing
  • Including iterations driven by a scheduler or cron job

What is the difference between persistent and non-persistent data store?
Persistent: Data survives when redeploying or when server crashes or CH worker is stopped

Non-persistent: Data can be reused while the application is still running but data is lost after application restarts or server crashes

What are the options to store states in Mulesoft and what is the fastest?

  1. Fastest: non-persistant
  2. persistant: latency to write data to the local file
  3. state replicate to a distributed memory data grid: added latency to replicate across network
  4. back a mule runtime cluster with persistent database storage: latency to replicate data across the network

What is an object store and what is it designed for?

  • Mulesoft object store is a key-value store implemented in Java and accsesed via Object Store connector

It is designed for:

  • Synchronization information like watermarks
  • Temporal information like access tokens
  • User information

What does Mulesoft understand by persistence?

  • persistence: storage that is copied to a disk or some externals storage or replicated across several nodes
  • non-persistent: usually refers to data that is only stored in the JVM memory

Each object store can be configured as persistent or transient (non-persisten)

What does Mulesoft mean by durability and reliability for Object Store?
One vs. multiple CloudHub workers
One vs. multiple clustered customer-hosted Mule runtimes

All these factors affect the overall performance and SLAs of an object store

How does a Mule application implements an object store?
Persistent: OSv2 = Anypoint Object Store service

  • cloud native implementation
  • Data is shared between all CH workers

Non-persistent: Does NOT use OSv2 service

  • object store is implemented locally in each CH worker
  • Data is isolated within each CH worker

What are the two options to configure performance of a Mule runtime cluster?
You can set:

  • reliable or
  • performance

by default its set to reliable

What are the limitations of Anypoint Object Store?

  • Not a universal data storage solution like S3 bucket
  • Does not support transactions
  • Does not replace an actual DB and not suitable for searches or queries
  • Data is automatically removed after 30 days for OSv2
  • Max storage per message is 10 MB

Where is the data saved depending on the runtime plane type?
CH:

  • Data is saved when the Mule application is deployed to CH
  • To shared distributed memory when the Mule app is deployed to a cluster of runtimes

Customer-hosted:

  • Can use OSv2 REST API to store and retrieve data

How can you block access to an object store from other Mule application components?
A private object store can be configured by a particular component to securely hide its object store data from another component in the Mule application

What are the object store types that Anypoint provides?

  1. Global object store:
  • can share state between components in a mule application
  • For OSv2 between workers of a multi-worker CH deployment
  1. Private object store:
  • When sharing data between components in the flow is deemed to be security risk

What are the characteristics of VM queues used to store the state of an application?

  • Queues can be transient or persistent
  • Transient queues are faster than persistent queues but less reliable

On customer-hosted runtime plane:

  • standalone mule runtimes persistent queues are stored to the local disk
  • cluster of mule runtimes, persistent queues are backed by the clusters distributed data grid

What are the advantages of VM persistent queues instead of another 3party messaging solution?

  • Use persistent queues when the use case does not require
  • More durable and reliable then JMS or DB
  • To share between multiple applications or with non-mule applications
  • persistent queues are not available

What is the difference between JMS and VM?

  • VM no publish subscribe
  • VM not external
  • JMS expensive

Difference for persistent queues:

  • You can not see the message in a VM queue

Why should you not use file-based persistence for Mule application on CloudHub?

  • Mule applications have only limited and ephemeral file system access
  • EC2 disc storage is removed when CH worker from the EC2 instance is removed
  • The file connector can only access specific folders such as /temp or /opt/storage

When should you use an external store to store and manage Mule application state?
Pros:

  • May provide more exacting performance, reliability, durability
  • May be preferred option to achieve certain high availability or failover goals
  • Use when backup and replication is required for cache objects

Cons:

  • Additional cost, management and staffing requirements
  • Added layers and complexity

What is a watermark?
A watermark is a form of state that is stored during a recurring processing cycle such as to process a collection of records

  • Mostly used to avoid dublicates

What types of watermarks can be used?
Automatic:

  • saving, retrieving and comparing is automatically handled through an object store
  • Only for few connectors available:
    on new or Update File or On Table Row

Manual:

  • Handle saving, retrieving and comparing the watermark
  • More flexible in that you specify exactly what records you want to retrieve

How can you send logs to an external logger?
With an additional appender in log4j

  • Supports synchronous and asynchronous logging
  • By default logging in Mule is done asynchronously

What is the difference between System and Application logs?
System log:

  • specific to the mule runtime
  • configured by log4j and inaccessible to customers

Application log:

  • specific to the mule application
  • configured by log4j typically packaged in mule application

What is the difference between synchronous and asynchronous logging and when is it used?
Synchronous:

  • Thread which is processing the message is interrupted to wait
  • Used when log is used as an audit trail or ERROR/CRITICAL message

Asynchronous:

  • Logging occurs in a separate thread so the actual message is not delayed
  • Log may be lost in case of system crash

How can you trace messages in Mulesoft?
The correlation id is automatically logged on cloudhub and customer-hosted mule runtimes

the logger component automatically logs the correlationId for DEBUG level messages

What are the retention limitations in CloudHub?

  • Up to 100MB per Mule application and per worker
  • At most 30 days

How can you enable if you want to send CloudHub logs to external logging systems?

  • With a custom log appender
  • You need to request via the Mulesoft support portal

What is another option instead of an additional appender in log4j to send data to an external system?

  • Custom aggregator application
  • Lambda is taking over the CloudHub APIs the logs and send it to another system

Where can you configure alerts and how can they be triggered?
Runtime manager

  • Can be triggered by Mule application or server conditions
  • Alerts can send notifications to email addresses
  • Custom notifications can be generated by a Mule application

What are business events and what are they used for?

  • Mule applications can collect business events information as each Mule event transitions through a flow
  • Business events are designed to collect KPIs and store them in an Mulesoft provided online service
  • The process may degrade network or Mule application performance

How can you enable Business Events?
Default business events can be enabled or disabled per flow

What is a Custom Business Event?

  • A Custom Business Event component can generate additional business events at a particular place in a flow
  • You can define a KPI with its related Value
  • KPIs can be stored outside the Mule application

What types of environments does Anypoint provide for deployment?

  1. Production quality environment
  • Deploy apps and APIs to publicity
    -. When you create a new account it contains one prod environment
  1. Sandbox quality environment
  • Env for development and testing
  1. Design quality environment
  • Enables you to test and run mule applications at design time

The underlying infrastructure is different depending on the type you select

Each VPC is assigned to a business group

How does a best practice CI/CD process looks like for Mule?

What are the options to run applications beside manually on CloudHub?

  • Anypoint CLI
  • Platform APIs

With which tools can you run static code analysis?

  • Githook
  • Sonarcube

What are the characteristics of a business group?

  • Business groups provide complete isolation of resources
  • vCores are assigned to a specific business group: Makes those vCores only available to the business group and unavailable to the parent organization
  • Each business group has its own environment
  • Each business group has a separate cliend id and client secret
  • Deleting a business group is NOT recoverable as all resources get deleted

What are the Maven lifecycle phases?

  • compile: compile mule source code of the project
  • test: run munit tests associated to the project
  • package: packages the project into a mule deployable jar
  • install: sends the distributable to a local repository ($MULE_HOME)
  • deploy: sends the distributable to a remote repository

What is a transaction?
Is a grouping of operations what are guaranteed to all complete or none at all

What is the two phase commit protocol?

  1. First you check if the system is ready to commit
  2. When its ready to commit, you commit to the DB

What is the XA interface?
If you have global transactions involving multiple separate resources such as database you need to manage it by a transaction manager.

XA-Interface specifies communication between a transaction manager and a resource manager

What are the alternatives if an API doesn’t support the 2phase commit?

  • Large distributed transactions systems: Google Spanner
  • Eventual consistency
  • Sagas
  • CAP theorem: two of them can be achieved: consistency, availability, partition tolerance

What are the two SAGA pattern?

  1. Event
  • Each API creates an event and send it to the next one
  • No API is responsible for all
  1. Command/Orchestration
  • If you have 3 APIs, one generates an event then send it to another payment API. This will receive and generate a success and send it to delivery
  • Every event is passed from API to API
  • In SAGA one API is responsible for everything. One Experience API is responsible for all others and if there is a failure the mein API will take the error

Which transaction types are supported by Mule?

  • Single-resource (local) TX

If you only have one database in the try scope

  • Global (XA) TX

If you have more then one database = distributed system

What are characteristics of Transactions?

  • Supported connectors must be configured to use transactions
  • All message processing done on a single thread
  • XA transactions need XA-capable transaction manager

Which connectors support transactions?

  • JMS
  • VM
  • Database

How do you begin and finish a transaction?
Begin a transaction:

  • Try scope
  • A transactional connector acting as an event source (Database, JMS, VM)

Committed automatically at the end of:

  • Flow
  • Try scope
  • On error continue scope

Rollback transaction:

  • After a failure occurs in a transaction scope, but only if the error is not handled in an On Error Continue Scope
  • On Error Propagate
  • By throwing an error in a flow or in a Try scope using: raise-error

Please check image and mention all transaction configurations

  • Transaction between databases –> Type = XA
  • Transaction action:

.Try scope: always begin
. Advanced properties: mysql join
. Advanced properties derby: join

What is the default XA transaction manager in Mule applications?
Bitronix

  • To use Bitronix declare it as a global configuration element in the Mule application
  • Each Mule runtime can have only one instance of a Bitronix transaction maanger which is shared by all Mule applications
  • For customer-hosted deplyoments define the XA transaction manager in a Mule domain

What are the different connector options for transactional behaviour?

How can reliability achieved in Mule applications?

  • until successful scope
  • reconnection strategies
  • redelivery policy
  • RETRY_EXHAUSTED exception scope
  • Transactions

How does until successful scope works?

  • It repeatedly triggers the scope components (including flow references) until they all succeed or until a maximum number of retries is exceeded
  • The scope provides option to control the max number of retries and the interval between retries

How do you configure a reconnection strategy?

How do you configure a redelivery policy?

How can you use RETRY_EXHAUSTED?
The connector raises an exception and published the message to the DLQ

How can you achieve reliability for non-transactional systems?

  • Zero message for non-transactional systems is achieved using reliability pattern
  • Splits processing between an acquisition flow and a processing flow
  • The flows do not call each other directly but use persisted queues

Describe the reliability pattern for non-transactional systems?
The reliability pattern consists of two flows:

  1. Acquisition flow:
  • Receives incoming messages then dispatches them to the persisted queue
  • In case of failure until redelivery is exhausted the message is dispatched to a DLQ
  1. The processing flow
  • Process messages from the processing queue then dispatches them to another persisted queue

What are HA and DR goals?
HA = High availability

  • How to keep the overall system operational when a system component fails

DR = Disaster recovery

  • How to restore a system to a previous acceptable state after a natural or man-made disaster

How can HA be achieved?

  1. Horizontally scaling to multiple mule runtimes
  • Process on multiple concurrent physical machines/VMs/dockers
  1. Load balancing and clustering:
  • Clustering uses an active-active model of node
  • Load distributes across the actives nodes

What is a cluster?
A cluster is a set of Mule runtime engines that acts as a unit.

A cluster is a virtual server composed of multiple nodes (Mule runtime engines)

The nodes in a cluster communicate and share information through a distributed shared memory grid. This means that the data is replicated across memory in different machines

On which runtime planes is clustering available?
It is not available on CloudHub. You can use Fabric in order do share or double scale your application and provide high availability

What are the benefits of clustering?
HA: Clustering guarantees HA. If a Mule runtime engine becomes unavailable due to failure or downtime, another node in the cluster can take the workload.

Performance: Clustering also improves performance since the nodes are processing parallel the messages.

Other benefits:

  • Automatic load balancing
  • You can set up alerts when a node goes down

What does unclustered load balancing for HA and performance means? (only available for customer-hosted runtime planes)

  • Multiple Mule runtimes are configured to run the same application
  • They DON’T share or synchronise data between Mule runtimes –> in clustering communication is shared over the shared memory grid
    (you can use a shared database)
  • Messages must be distributed or load balanced with a third party product

How can you achieve HA on CloudHub?

  • Using multiple CloudHub workers –> more then 1
  • Workers do not share any memory
  • Workers can use an external system for state management
  • Each worker is created in a different availability zone in the same AWS region
  • Mule application can share and store data between workers with OSv2

What are the two ways how nodes (runtimes) can join a cluster in customer-hosted runtime plane?

  • Unicast: Cluster uses IP address for identifying server
  • Multicast: cluster group servers automatically detect each other

How do you share memory in a cluster?

  1. Distributed Shared Memory Grid:
  • Hazelcast is used to create a distributed shared memory data grid
  • Data is automatically replicated and available between the clusters nodes
  • This allows data to survive if a node crashes or otherwise leaves the cluster
  1. Components:
  • Components that use a cluster shared memory include: VM queues, Object Stores
  1. Connectors:
  • Most connectors are not cluster-aware:
  • All connectors that use object store are cluster-aware
  • Cache scope, Idempotent message, Round robin

How does Round Robin stores the previous stage?
With an Object Store

What are the differences between Clustering and Load Balancing in a customer-hosted runtime plane?
Pro Clustering:

  • Shared, distributed memory
  • Ideal for HA scenarios
  • Build-in load balancing for VM queues
  • Built into Mule

Pro LB:

  • Easy to set up
  • No performance overhead due to data replication
  • Configurable load balancing

Cons Clustering:

  • Performance overhead due to data replication
  • Not supported by CloudHub
  • Required 3party product for HTTP load balancing

Cons LB:

  • Required 3party product
  • No data synchronisation
  • Manage idempotency

What do you choose if you want to have HA and performant processing. Clustering or would you rather go for LB?
In this case Load Balancing because due to the shared memory of clustering you need to replicate data and you have more overhead which is constraining performance

What is Anypoint MQ?
Publish Subscribe Service

What is the difference between VM queue standalone Mule runtime or clustering when it comes to load balancing?

  • VM queue standalone –> NOT load balanced

. Every standalone Mule runtime node will execute flow instances independently
. The processing happens on a single node
. No distributed processing

  • VM queue clustered –> load balanced

How can you identify performance bottlenecks?

  • Monitoring tools: anypoint dashboards, Jconsol, VisualVM, AppDynamics etc.

Why is application profiling performed?
Due to:

  1. Memory issue
  • Detect memory leaks or excessive load situations
  • Java heap memory dump can help to analyze these types of issues
  1. Application unresponsiveness
  • Detect blocked threads, long-running threads, waiting threads
  • Thread dumps can help analyze the issue

What are tools to monitor traffic and KPIs?

  • Anypoint Monitoring
  • New Relic
  • Splunk and ELK
  • Zipkin or Jaeger
  • Nagios

What are the scaling options you can apply on Mule runtime and Mule application?

  1. Vertical scaling
  • Scale up –> More vCore size on CH
  • More Resources –> CPU, RAM on each machine
  1. Horizontal scaling
  • Scale out
  • Process on multiple machines
  • Load balancing or/and clustering

How can you cluster for performance?

  • You can configure an Application or Runtime for high performance which is by default disabled
  • Mule Runtime:
    Setting the storeprofile value in the mule-cluster.properties or wrapper.conf file: mule.cluster.storeprofile=performance
  • Mule Application:
    You can also override per Mule Application in a configuration global element (screenshot)

What are the effects of setting the performance profile?

  1. Disables distributed VM queues, using local VM queues instead to prevent distribution in the shared data grid
  2. Implements node local in-memory object stores instead of shared memory grid architecture to avoid replication

Its not true that application always perform better in a cluster!

How does a Mule application deploys to multiple CloudHub workers?

  • CH automatically distributes multiple workers for the same Mule application across two or more zones
  • The HTTP load balancing distributes requests across all CH workers in an round-robin manner
  • A Mule app can scale out to max 8 workers or 16vCores

How can you enable autoscaling on Cloudhub and how is it configured?

  • Runtime manager provides an autoscaling feature
  • You have to ask Mulesoft to enable this feature
  • Allows you to scale to CPU or Memory usage threshold is exceeded
  • You can decide between:
    . Increase vCore size – vertical
    . Increase number of Mule runtimes – horizontal

Each autoscaling policy is triggered every 30min

What is the difference between a worker and vCore?
Applications on CloudHub run by one or more instances of Mule, called workers.

Each worker is a dedicated instance of Mule and can different memory capacity or processing power depending on the configuration.

You can scale workers vertically:

What are some configuration for designing a performant application? 10 topics

  1. Synchronously
  • Better for performance because the throughput is less and small payloads
  1. Asynchronously
  • For high throughput and large payload
  1. Batch
  • Processes messages in batches (depending on the max batch size of external system – 200 messages)
  • High throughput
  1. Scheduler
  • Scheduler runs periodically for new data
  • Useful for batch processing: use short interval to keep source and target in sync
  1. Messaging queues
  • Decouple of data producers from consumers
  • Useful for real time data integration
  1. Streaming
  • Data can be read multiple times or accessed randomly
  • Data can be sent to multiple places without need to cache data in memory first
  1. Transformation
  • Avoid unnecessary conversions to Java
  • Let Mule handle streaming for you
  • Do not convert binary data types to Strings
  • DataWeave memory bugger of 1572864 bytes, if you exceed hard disk is used as buffer
  1. Scatter-Gather
  • Parallel execution
  • Max concurrency sets concurrency for parallel execution of scope
  1. Loggin
  • Async logging rather then sync
  1. Network latency
  • Compress large payload (gzip)
  • Can use compression module
  • Caching responses

What is the default buffer size of DataWeave and what happens when you exceed it?
1.5 MB

It will use your system hard disk as buffer

What are some performance tuning considerations you need to think of?

  1. HTTP or HTTPS connector
  • Always use HTTPS because the latency is not much worse
  1. JMC connector
  • caching is on by default
  • Use sessionCacheSize to adjust size of JMS cached session
  • Disable JMS message persistent at JMS
  • Configure numberOfConsumers on JMS listener for high trough-put
  • Configure ACK mode to meet your SLA
  • Avoid durable subscriber and message filtering
  1. Database connector
  • Caching on by default
  • Use bulk operations based on DB connector for batch processing
  • Enable streaming to start processing large results set
  • Max row and fetch size:
    Example:
    max rows = 1000
    fetch size = 200 limits the response to max 1000 rows. in that it would require 5 separate network round trips
  1. VM connector
  • Use for HA
  • Prefere flow reference within the same Mule app instead of VM endpoints
  1. Batch jobs
  • Default block size 100
  • Max concurrency sets concurrency for batch jobs (default is twice the available cores in CPU)
  • Run comparative batch sizes to find optimum concurrency for the use cases
  • Use fixed site batch aggregator to do bulk operation for supported connectors
  1. Streaming batch aggregator:
  • Receives all records in the job instance without running out of memory
  • SaaS provider often have restrictions on accepting streaming input

How can you tune performance on Mule customer-hosted plane?

  1. JVM standard properties:
  • can be set in mule runtime weapper.config
  • Set initial and max heap size
  • Set NewRatio of the old and young generation heaps
  1. You can use parallel GC = Garbage Collecting

What is heap memory and what are garbage collectors?
On customer-hosted plane:

Garbage collectors are used to move java objects from young generation heap to old generation heap

  • Java objects reside in heap memory
  • New objects are created in young generation heap memory
  • Garbage collectors move objects to old generation heap memory

What are the performance tuning parameters for flows and components?

  • Flow: max concurrency
  • Batch Job: Max concurrency, Batch block size
  • Batch aggregator: Streaming, Aggregator size
  • Scatter-Gather: Max concurrency
  • HTTP connector: use persistent connections
  • JMS connector: session cache size, cache consumer, cache producers, max redelivery
  • DB connector: Max pool size, min pool size, prepare statement cache size, transaction isolation
  • DB operation: Streaming, timeout, max rows, fetch size

Who is the owner of an organisation?
The person who creates it

What can you configure on high-level with the access control of Anypoint?

  1. Organization: Created by the owner:
  2. Business Groups:
  • Business groups has its client id and client secret
  • provides isolation of resources
  • vCores are assigned to business groups
  • vCores are only available for the BG and not to the parent organization
  • Each BG have its own environments
  • Deletion of a BG is not recoverable
  1. Child Business Groups:
  2. Roles
  3. Environments
  4. Users

Can you use external identity management server for Anypoint?
Yes, OpenID, SAML2.0

You can also apply oAuth2.0 policy to authenticate client applications

What secure communication protocols are supported by Mulesoft?

  • Symmetric and Asymmetric cryprography standards
  • Digital certifications

Protocols:

  • HTTPS
  • TLS
  • SFTP
  • FTPS
  • SMTP
  • IPSec

What is the difference in configuring Managing type in API Manager between:

  • Basic Endpoint
  • Endpoint with Proxy
    Basic Endpoint:
  • Policies are downloaded to the application.
  • You apply the policies in the runtime itself
  • The policy is downloaded to /policies folder
  • API autodiscovery must be enabled to apply the policy

Endpoint with proxy: Proxy is applying the policy

  • If you are exposing non-mule applications
  • You have additional licenses

Can you apply additional policies on top of the Anypoint API policies?
Yes with Anypoint Security.

  • Its an additional product you need to buy
  • It offers you other types of policies that can be enforced at the edges of your network for multiple Mule Apps

How is edge security used by Mule applications?

  • Anypoint Security Edge is an enterprise solution for edge level security of APIs
  • It is a standalone product deployed outside Mule runtime
  • Its typically deployed in DMZ in a customer-hosted runtime plane

When is it applied?

  • To inbound request after they are sent from a calling API client before they arrive at the Mule application API endpoints (so before policies of API manager are applied)
  • To outbound responses back to the API client after leaving the Mule application API endpoint after API manager policies are applied

Are Anypoint Security policies available for CloudHub runtime planes?
No, but for Fabric

What is the difference between Edge policies and API policies?

  • Policies are applied in the Edge gateway or in the API Implementation / API proxy app
  • Edge policies apply to many API instances, API policies apply to exactly ONE API instance
  • Different policies are available

Where is Anypoint Security and Tokenization usually deployed?

  • Edge usually in a DMZ in a customer-hosted environment
  • Token usually inside the firewall to replace sensitive data with face data

What is Tokenization?
It replaces sensitive data with fake data in the same format

  • Credit card numbers, social security numbers, phone numbers etc.

What are the three main features of Edge security?

  1. CAP: Content Security
  • Prevents malicious content from reaching a service during runtime execution
  • Pattern Scans
  • SQL injections
  • Limit message size
  • Limit number of file attachments
  • Service will generate a CAP violation if the request matches any of the above criteria
  1. QoS: Quality of Service
  • Request data rate
  • Raw request data rate
  • Response data rate
  • Failed response rate
  • Message buffer utilization
  1. DoS: Denial of Service
  • Alerts
  • Block-intervals: rejects messages
  • Block-forever: Permanently block messages
  • Shape-interval: Restricts the rate
  • Shape-forever: Restricts the rate forever

How does a symmetric key works?

  • One key is used to both encrypt and decrypt the information
  • How can you securely exchange a symmetric key over a public network?

How does an asymmetric key works?

  • Public key can be freely distributed since its only used to lock the data
  • The private key is used to decrypt the data
  1. Alice to Bob: Hello lets set up a SSL session
  2. Bob to Alice: Here is my Certification
  3. Alice to Bob: Here is the one time encryption key for the session
  4. Bob decrypts session using the private key and established the secure session
  • The certification must be valid
  • Certification must be signed by someone

What is the difference between:

  • Tokenization
  • Encryption
  • Data Masking
  • Token: Data to random String, You can not derive the original data from the token
  • Encryption: You can decrypt it again
  • Data Masking: One way process, you can not get the original value back

How can you secure application properties?

  1. Create a Secure Properties Config
    (It supports YAML configuration and Java properties)
  • The encryption can be given when starting runtime
  1. Encrypted value is defined in ![value] in quotes
  2. You can access it in the properties: ${secure::db.port}

How can you hide secure properties on cloudhub runtime manager?

  • Add it to the mule-artifact.json
  • The secure properties on cloudhub will be *

How can you secure data in Mule applications?

  1. Mule cryptography module supports Java Cryptographic architecture:
  • symmetric and asymmetric encrypting/decrypting
  • Signing and signature validation of a payload or part of a payload
  1. DataWeave also has a Crypto module for hashing payload:

How does Crypto Module works?

  1. Java Keytool generate keystore file
  2. Mule Crypto processor use JCE configuration with generated key store file

What is contained in a public certificate?

  • Public key
  • Organization details
  • The certificate issuer
  • A certificate is typically signed by a trusted certificate authority = CA or can be self signed using the Java Keytool

What is a Java keystore and a truststore?

  1. Keystore stores public certificates plus corresponding private keys
  • The Java keytool can be used to create keystores for Mule applications or Anypoint Platform
  1. Truststore stores public certificates for other parties and maybe also the signing of CAs

How do you configure one-way TLS for HTTPS?

How do you configure a two-way TLS for HTTPS?

  1. Client sends identity: public certificate containing public key
  2. Client has its own keystore for the private key
  3. Server has its own truststore to validate the clients certificate

How can you externalize a Mule runtimes certificate?
On customer-hosted Mule runtime:

  • You can externalize to a folder outside the Mule_HOME location

You can also use external Secret Manager (Jenkins etc)

What is a Virtual Private Cloud = VPC?

  • Anypoint can create a private isolated network in the cloud to host CloudHub workers
  • Mule applications deployed to the VPC can communicate with each other using VPCs private network addresses

Where can you set a VPC with a DLBs?
VPC can remain completely isolated from external networks:

  • Usually a VPC uses one or more dedicated load balancers to route traffic with external public and private networks
  • A DLB can handle Mule event payloads up to 200MB

How can you connect VPCs?

  1. Configure customized firewall rules for Mule applications deployed into the VPC:
  • Open ports beside 80, 8081, 8082
  • Block direct connections to CloudHub workers over port 8081 or 8082
  • Allow or restrict any other TCP or UDP ports
  1. Connect a VPC to a corporate intranet
  • On-Prem or Clouds
  • Via VPM connection to a private network
  1. Connect your VPC to another AWS VPC using VPC Peering

How can you hide DLB hostnames?

  • A DLB DNS entries are A records and are maintained by Mulesoft
  • Customers can define their own domain names as CNAMEs in their own DNS server

What is important about the VPC sizing?

  • Mule applications are deployed in CloudHub workers and each worker is assigned with a dedicated IP
  • For zero downtime deployment each worker in CloudHub needs additional IP addresses
  • A few IPs in a VPC are reserved for infrastructure
  • The IP addresses are usually in a private range with a subnet block specifier such as 10.0.0.1/24

What is the smallest and largest CIDR network subnet block you can assign for your VPC?
CIDR = Classless interdomain routing

smallest: /24 = 256 IP addresses

largest: /16 = I 65536 IP addresses

If you have:

  • 4 different environments: Dev, staging, performance and production
  • 50 application deployed in each environment
  • Two separate VPCs for production and non-production environments
  • In performance and production environment each Mule application will be deployed to two workers

What is the minimum CIDR network subnet for each of the VPCs? (non-prod and prod)
IP addresses

50 dev
50 staging

50 + 50 performance –> due to 2 workers per application

50 + 50 prod –> due to 2 workers per application

300 IPs + zero downtime 50% (150) = 450

  • /23 = 510 IPs so you select /23

Remember you can configure a VPC with any CIDR subnet between /24 and /16 without any additional costs

  • You should plan for worst case growth
Scroll to Top