Salesforce-MuleSoft-Developer-II Exam Questions With Explanations
The best Salesforce-MuleSoft-Developer-II practice exam questions with research based explanations of each question will help you Prepare & Pass the exam!
Over 15K Students have given a five star review to SalesforceKing
Why choose our Practice Test
By familiarizing yourself with the Salesforce-MuleSoft-Developer-II exam format and question types, you can reduce test-day anxiety and improve your overall performance.
Up-to-date Content
Ensure you're studying with the latest exam objectives and content.
Unlimited Retakes
We offer unlimited retakes, ensuring you'll prepare each questions properly.
Realistic Exam Questions
Experience exam-like questions designed to mirror the actual Salesforce-MuleSoft-Developer-II test.
Targeted Learning
Detailed explanations help you understand the reasoning behind correct and incorrect answers.
Increased Confidence
The more you practice, the more confident you will become in your knowledge to pass the exam.
Study whenever you want, from any place in the world.
Salesforce Salesforce-MuleSoft-Developer-II Exam Sample Questions 2026
Start practicing today and take the fast track to becoming Salesforce Salesforce-MuleSoft-Developer-II certified.
2604 already prepared
Salesforce 2026 Release60 Questions
4.9/5.0
Which pattern should be used to invoke multiple HTTP APIs in parallel and roll back failed requests in sequence?
A. A database as a transactional outbox and an Until Successful router to retry any requests
B. A Parallel for Each scope with each HTTP request wrapped in a Try scope
C. Scatter-Gather as central Saga orchestrator for all API request with compensating actions for failing routes
D. VM queues as a reliability pattern with error handlers to roll back any requests
Explanation:
✅ Correct Answer: C. Scatter-Gather as central Saga orchestrator for all API requests with compensating actions for failing routes
The Scatter-Gather component in MuleSoft is ideal for invoking multiple HTTP APIs in parallel, as it sends requests concurrently and collects responses. To handle rollbacks in sequence, Scatter-Gather can act as a central Saga orchestrator, a pattern where each API request is treated as a step in a distributed transaction. If any request fails, compensating actions (e.g., calling a rollback endpoint or reversing the action) are executed in sequence for the failed routes. This ensures that partial failures are undone systematically, maintaining consistency across APIs. MuleSoft’s documentation on Scatter-Gather and the Saga pattern (in API-led connectivity) highlights its use for parallel processing with compensating transactions to manage distributed rollbacks.
❌ Incorrect Answers:
❌ A. A database as a transactional outbox and an Until Successful router to retry any requests
The transactional outbox pattern involves storing API requests in a database and processing them reliably, often with retries via an Until Successful router. While this ensures reliability, it does not support parallel invocation of multiple APIs, as requests are typically processed sequentially. Additionally, the outbox pattern focuses on eventual consistency rather than sequential rollbacks with compensating actions. MuleSoft’s documentation on the outbox pattern notes its use for reliable message delivery, not parallel API calls with orchestrated rollbacks.
❌ B. A Parallel For Each scope with each HTTP request wrapped in a Try scope
The Parallel For Each scope in MuleSoft executes iterations concurrently, which could invoke multiple HTTP APIs in parallel. Wrapping each request in a Try scope allows error handling for individual failures. However, Parallel For Each does not provide a centralized mechanism to orchestrate sequential rollbacks across all APIs, as required by the Saga pattern. Managing compensating actions would require complex custom logic, making it less suitable than Scatter-Gather. MuleSoft’s documentation on Parallel For Each indicates it’s designed for independent parallel processing, not coordinated distributed transactions.
❌ D. VM queues as a reliability pattern with error handlers to roll back any requests
Using VM queues in MuleSoft ensures reliable message delivery by persisting requests in intra-application queues, with error handlers to manage failures. However, VM queues process messages sequentially or require multiple queues for parallelism, which lacks the centralized coordination needed for parallel API invocations and sequential rollbacks. Compensating actions for rollbacks would need additional custom orchestration, unlike the Scatter-Gather Saga approach. MuleSoft’s VM Connector documentation emphasizes reliability for asynchronous processing, not parallel API orchestration with rollback coordination.
🧩 Summary:
Option C is correct because Scatter-Gather supports parallel HTTP API invocations and can act as a Saga orchestrator to execute compensating actions in sequence for failed requests. Options A (outbox with retries), B (Parallel For Each with Try scopes), and D (VM queues with error handlers) are incorrect because they either don’t support parallel processing, lack centralized rollback orchestration, or are designed for reliability rather than distributed transaction management.
References:
➥ MuleSoft Documentation: Scatter-Gather (docs.mulesoft.com) – Describes parallel processing of routes and its use in orchestrating distributed transactions like the Saga pattern.
➥ MuleSoft Documentation: Saga Pattern (docs.mulesoft.com) – Explains the use of compensating actions for sequential rollbacks in distributed systems.
➥ MuleSoft Documentation: Parallel For Each and VM Connector (docs.mulesoft.com) – Clarifies their use for parallel or reliable processing but not for coordinated Saga-style rollbacks.
Refer to the exhibit.m

A Mule application pom.xml configures the Maven Resources plugin to exclude parsing
binary files in theproject’s src/main/resources/certs directory.
Which configuration of this plugin achieves a successful build?
BR>
A. Option A
B. Option B
C. Option C
D. Option D
Explanation:
Key Problem:
The Mule application needs to exclude binary files (e.g., .p12, .jks, .crt) in src/main/resources/certs from Maven resource filtering to prevent corruption during the build.
Correct Configuration (Option C):
The Maven Res
ources Plugin must:
Enable filtering (
Exclude binary files using
Why Option C is Correct?

The configuration in Option C (from the exhibit):<Explicitly lists binary certificate formats to skip filtering.
Matches the files in src/main/resources/certs (.p12, .jks, etc.).
Why Other Options Fail?
Option A:
Missing
Option B:
Incorrect file extensions (e.g., p1, pen).
Option D:
May exclude wrong files or lack critical extensions.
Key Maven Concept:
Filtering replaces placeholders (e.g., ${env}) in files—but must not process binaries (they get corrupted).
Refer to the exhibit.
The flow name is ‘’implementation’’ with code for the MUnit test case.
When the MUnit test case is executed,what is the expected result?
A. The test case fails with an assertion error
B. The test throws an error and does not start
C. The test case fails with an unexpected error type
D. The test case passes
Explanation:
Since the question refers to an exhibit that contains the Mule flow named "implementation" and the code for an MUnit test case, but the exhibit is not provided, I will base the explanation on typical MUnit test case scenarios in MuleSoft and the provided answer choices. MUnit is MuleSoft's testing framework used to test Mule flows, and assertion errors typically occur when an assertion in the test case (e.g., using the assert-that or assert-equals operation) fails to validate the expected outcome.
Here’s a reasoned analysis of why A is the most likely answer:
MUnit Test Case Execution: An MUnit test case typically includes a Mule flow (in this case, named "implementation") and assertions to verify the flow’s behavior. The test case will execute the flow and compare the actual output (e.g., payload, attributes, or variables) against expected values defined in the test.
Assertion Error: An assertion error occurs when the actual output of the flow does not match the expected output defined in the MUnit test case. For example, if the assert-equals operation checks that the payload is "expectedValue" but the flow produces "actualValue", the test will fail with an assertion error.
Common Scenario: In MuleSoft MUnit tests, assertion errors are common when:
➜ The flow logic produces an unexpected payload, variable, or attribute.
➜ The test case is configured with incorrect expected values.
➜ The flow has a bug that causes it to deviate from the expected behavior.
Given the answer choices, A. The test case fails with an assertion error is the most specific and aligns with a typical MUnit failure caused by a mismatch between expected and actual results.
Why not the other options?
B. The test throws an error and does not start:
This is unlikely because MUnit tests are designed to start unless there is a severe configuration issue (e.g., invalid XML, missing dependencies, or a syntax error in the test case). If the test case is well-formed, it will start and execute the flow, even if it fails due to an assertion. This option suggests a pre-execution failure, which is less common in MUnit.
C. The test case fails with an unexpected error type:
This option is vague and less likely. An "unexpected error type" could imply a runtime exception (e.g., a NullPointerException or a database connection error) in the flow or test case. However, MUnit tests are typically designed to handle expected error scenarios, and assertion errors are the standard failure mode for validation issues. Without specific evidence of an unexpected error in the flow or test, this is not the best choice.
D. The test case passes:
If the test case passes, it means the flow’s output matches all assertions in the MUnit test. However, since the question implies a failure (by offering multiple failure-related options), and without the exhibit confirming a perfect match between expected and actual results, this is unlikely.
Reference:
➜ MuleSoft MUnit Documentation: MUnit Testing Framework – Explains how MUnit tests Mule flows and uses assertions to validate outcomes.
➜ MUnit Assertions: MUnit Assertions Documentation – Describes assertion operations like assert-equals and assert-that, which throw assertion errors when validation fails.
➜ MuleSoft Best Practices: Testing Mule Applications – Discusses common testing scenarios and failure modes in MUnit.
In a Mule project, Flow-1 contains a flow-ref to Flow-2 depends on data from Flow-1 to execute successfully. Which action ensures the test suites and test cases written for Flow-1 and Flow-2 will execute successfully?
A. Chain together the test suites and test cases for Flow-1 and Flow-2
B. Use ‘’Set Event to pass the input that is needed, and keep the test cases for Flow-1 and Flow-2 independent
C. Use ‘’Before Test Case’’ To collect data from Flow-1 test cases before running Flow-2 test cases
D. Use ‘After Test Case’ to produce the data needed from Flow-1 test cases to pass to Flow-2 test cases
Explanation:
In MuleSoft testing with MUnit, each flow should ideally be tested independently to ensure unit test isolation. If Flow-1 calls Flow-2 using a flow-ref, and Flow-2 depends on some data from Flow-1, then:
➡️ You should not chain the flows during testing.
➡️ Instead, use MUnit’s Set Event processor in the test for Flow-2 to simulate the input event that Flow-2 would receive from Flow-1.
➡️ This approach keeps each flow’s test isolated, repeatable, and easy to debug.
The purpose of Set Event is to:
➡️ Set payload, variables, and attributes manually.
➡️ Mimic exactly what Flow-2 expects as input.
❌ Why the other options are incorrect:
A. Chain together the test suites and test cases for Flow-1 and Flow-2
🔸 Incorrect: This violates the unit testing principle. It makes tests interdependent, harder to maintain, and prone to cascading failures.
C. Use ‘Before Test Case’ to collect data from Flow-1 test cases before running Flow-2 test cases
🔸 Incorrect: Before Test Case is for setup logic like initializing variables — not for calling or chaining flows.
D. Use ‘After Test Case’ to produce the data needed from Flow-1 test cases to pass to Flow-2 test cases
🔸 Incorrect: After Test Case is used for teardown/cleanup — not suitable for passing test data across test cases.
🔗 Reference:
MuleSoft Docs – MUnit Set Event
Best Practices for Unit Testing in MuleSoft
When a client and server are exchanging messages during the mTLS handshake, what is being agreed on during the cipher suite exchange?
A. A protocol
B. The TLS version
C. An encryption algorithm
D. The Public key format
Explanation:
During the mTLS (mutual TLS) handshake, the cipher suite exchange is the process where the client and server negotiate a set of cryptographic algorithms to secure the communication. A cipher suite specifies the encryption algorithm (e.g., AES), key exchange method (e.g., RSA, ECDHE), authentication mechanism (e.g., ECDSA), and message authentication code (e.g., SHA256). The client sends a list of supported cipher suites in the ClientHello message, and the server selects one from the list that it supports, as part of the ServerHello message. This agreement primarily determines the encryption algorithm and related cryptographic mechanisms for the session. RFC 5246 (TLS 1.2) and RFC 8446 (TLS 1.3) define the cipher suite negotiation process, emphasizing its role in selecting encryption and related algorithms.
❌ Incorrect Answers:
❌ A. A protocol
Explanation: The cipher suite exchange does not determine the protocol (e.g., HTTP, FTP) used for communication. The protocol is determined by the application layer, independent of the TLS handshake. The cipher suite focuses on cryptographic algorithms, not the higher-level protocol. RFC 8446 (TLS 1.3) clarifies that cipher suites are about cryptographic parameters, not application protocols.
❌ B. The TLS version
Explanation: The TLS version (e.g., TLS 1.2, TLS 1.3) is negotiated separately during the handshake, typically in the ClientHello and ServerHello messages, where the client proposes supported TLS versions, and the server selects one. While the cipher suite must be compatible with the chosen TLS version, the cipher suite exchange itself does not determine the TLS version. RFC 8446 (TLS 1.3) specifies that version negotiation occurs before cipher suite selection.
❌ D. The Public key format
The public key format (e.g., RSA, ECDSA) is not directly agreed upon during the cipher suite exchange. The cipher suite includes the key exchange and authentication algorithms, which may imply the use of certain key types, but the specific format of the public key (e.g., how it is encoded in certificates) is handled during certificate exchange, not cipher suite negotiation. RFC 5246 (TLS 1.2) notes that cipher suites define algorithms, while certificate formats are governed by standards like X.509.
🧩 Summary:
Option C is correct because the cipher suite exchange in an mTLS handshake determines the encryption algorithm (along with key exchange, authentication, and message authentication mechanisms) for securing the session. Options A (protocol), B (TLS version), and D (public key format) are incorrect because they are determined outside the cipher suite negotiation, during other parts of the handshake or application layer.
🧩 References:
RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 – Defines cipher suite negotiation as selecting encryption and related cryptographic algorithms.
RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3 – Clarifies that cipher suites specify encryption algorithms, while TLS version and certificates are handled separately.
OWASP: TLS Cipher Suite – Explains that cipher suites determine encryption, key exchange, and authentication algorithms during the TLS handshake.
Prep Smart, Pass Easy Your Success Starts Here!
Transform Your Test Prep with Realistic Salesforce-MuleSoft-Developer-II Exam Questions That Build Confidence and Drive Success!
Frequently Asked Questions
Anypoint Platform Development (25%): Building Mule applications using Anypoint Studio, managing connectors, and working with flows, subflows, and private flows.
API Design and Development (20%): Designing RESTful APIs with RAML, applying API-led connectivity principles, and managing API lifecycle through Anypoint Exchange.
DataWeave Transformations (20%): Writing advanced DataWeave scripts to transform, map, and manipulate complex data structures including JSON, XML, and CSV formats.
Error Handling and Debugging (15%): Implementing robust error handling strategies, using Mule debugger, and managing exceptions across synchronous and asynchronous flows.
Deployment and Runtime Management (20%): Deploying applications to CloudHub, Runtime Fabric, and on-premise runtimes, and monitoring performance through Anypoint Monitoring.
Time allowed: 120 minutes
Passing score: 70%
1+ year of hands-on experience building integrations with Anypoint Platform
Prior completion of the MuleSoft Developer I certification
Strong proficiency in DataWeave 2.0 and API-led connectivity design patterns
Familiarity with CloudHub deployment, Runtime Manager, and Anypoint Monitoring tools