# Application design for performance and capacity

*MuleSoft Platform Integration Architect Study Guide · Designing integration solutions to meet performance requirements · Last updated November 13, 2026 · https://www.certifyforce.com/study-guide/mulesoft-platform-integration-architect/designing-integration-solutions-to-meet-performance-requirements/application-design-for-performance-and-capacity*

Design choices that decide a Mule 4 application's performance and capacity: bounded caches, iterative constructs instead of recursive Flow References, Database Connector pooling, flow maxConcurrency to protect a backend, component-level tuning tips, and the AMQP consume and publish settings that trade throughput against memory and durability.

- Certification: Salesforce MuleSoft Platform Integration Architect
- Exam section: Designing integration solutions to meet performance requirements
- Study guide: https://www.certifyforce.com/study-guide/mulesoft-platform-integration-architect

**Official exam objective:**

> Design Mule applications and integration solutions to meet performance and capacity goals.

## What the exam expects

- Keep a cache from exhausting memory while it still serves repeated lookups.
- Replace recursive Flow References with the iterative construct that fits the use case.
- Decide when the Database Connector needs a pooling profile, and when flow `maxConcurrency` protects a fragile backend.
- Apply MuleSoft's component tuning tips for variables, DataWeave, HTTP authentication, database queries and file operations.
- Explain how AMQP acknowledgment, prefetch, delivery mode and broker confirms trade throughput against memory and durability.

**Pooling profile:** a connector setting that keeps a pool of established connections for reuse. **maxConcurrency:** the maximum number of concurrent messages a flow or scope processes at once. **Back-pressure:** Mule's response when a flow cannot accept new events, specific to each connector's source. **Prefetch count:** the AMQP window of whole messages the broker sends ahead. **Delivery mode:** whether published AMQP messages are logged to disk on the broker ([Pooling Profiles](https://docs.mulesoft.com/mule-runtime/latest/tuning-pooling-profiles), [Back-Pressure and MaxConcurrency](https://docs.mulesoft.com/mule-runtime/latest/tuning-backpressure-maxconcurrency), [App Design](https://docs.mulesoft.com/mule-runtime/latest/tuning-app-design)).

## Key facts

| Fact | Detail | Source |
|---|---|---|
| Default Cache scope storage risk | In-memory caching can consume all memory in production | [Caching](https://docs.mulesoft.com/mule-runtime/latest/tuning-caching) |
| Stack depth exceeded | CRITICAL error that error handlers cannot handle | [App Design](https://docs.mulesoft.com/mule-runtime/latest/tuning-app-design) |
| Subflows | Inlined; do not reset nesting depth | [App Design](https://docs.mulesoft.com/mule-runtime/latest/tuning-app-design) |
| Database Connector pooling | Off by default; new connection per statement | [Pooling Profiles](https://docs.mulesoft.com/mule-runtime/latest/tuning-pooling-profiles) |
| FTP and SFTP pooling | On by default | [Pooling Profiles](https://docs.mulesoft.com/mule-runtime/latest/tuning-pooling-profiles) |
| Test connection on checkout | Default true; deselect for pooled performance | [Database Connector Connection](https://docs.mulesoft.com/db-connector/latest/database-connector-connection) |
| Flow and Async maxConcurrency | No limit by default | [Back-Pressure and MaxConcurrency](https://docs.mulesoft.com/mule-runtime/latest/tuning-backpressure-maxconcurrency) |
| Batch Job concurrency | Twice the available cores | [Back-Pressure and MaxConcurrency](https://docs.mulesoft.com/mule-runtime/latest/tuning-backpressure-maxconcurrency) |
| AMQP QoS value 0 | Unlimited | [App Design](https://docs.mulesoft.com/mule-runtime/latest/tuning-app-design) |
| Request Broker Confirm | One extra broker-client exchange per published message | [App Design](https://docs.mulesoft.com/mule-runtime/latest/tuning-app-design) |

## Check yourself

- When does MuleSoft recommend `indent=false` in a DataWeave output?
- Why does adding AMQP consumers raise throughput only up to a point?
- Which construct replaces a recursive flow that polls until a condition is met?
- What does `maxPoolSize` in a Database Connector pooling profile specify?

## Sources

- [App Design That Maximizes Process Performance](https://docs.mulesoft.com/mule-runtime/latest/tuning-app-design)
- [Caching](https://docs.mulesoft.com/mule-runtime/latest/tuning-caching)
- [Pooling Profiles](https://docs.mulesoft.com/mule-runtime/latest/tuning-pooling-profiles)
- [Back-Pressure and MaxConcurrency](https://docs.mulesoft.com/mule-runtime/latest/tuning-backpressure-maxconcurrency)
- [Database Connector Connection](https://docs.mulesoft.com/db-connector/latest/database-connector-connection)
- [Performance Tuning Guide](https://docs.mulesoft.com/mule-runtime/latest/tuning-guide)

## About the full unit

The "Core concepts", "Exam traps" and "Worked scenario" sections of this unit, its 8 linked practice questions, and unlimited timed mock exams are included with the MuleSoft Platform Integration Architect pack (USD $19): https://www.certifyforce.com/practice-exams
