Ensure reliability, scalability, and performance of integrations
The exam tests resilience and performance decisions: timeouts, retries, queues, idempotency, caching, streaming, and worker sizing. Expect scenario questions where a downstream system is slow or unavailable.
Patterns
Set connect and response timeouts on every outbound call. Use until-successful with bounded retries and a dead-letter path, not infinite retry. Retry only idempotent operations, or attach an idempotency key and deduplicate in Object Store. Scatter-gather runs routes in parallel but fails the whole scope if any route fails unless errors are handled. Use Anypoint MQ or JMS for decoupling, redelivery, and dead-letter queues; use VM queues for in-app async. Cache reference data with the Cache scope or HTTP caching, and use Batch plus streaming for large payloads.
Capacity
CloudHub workers have fixed vCore and memory; autoscaling adds workers but not shared state. Keep state in Object Store or a queue, not in memory. Tune connection pools and use backpressure rather than unbounded concurrency.
Worked example
Order submission calls a CRM that intermittently returns 503. Wrap the HTTP request in until-successful with three retries and exponential backoff, send an idempotency key, and route final failures to a DLQ for replay. Reasoning: the operation is retryable only because the key prevents duplicate orders, and the DLQ preserves the failed event.
Traps
Retrying a non-idempotent POST; scatter-gather with no error handling; retries without timeouts; holding 100 MB payloads in memory; autoscaling without externalized state; ignoring queue redelivery limits.