Skip to content

Study guide

Study guide for chapter 14 of the Integration Architect course. Read the nine modules first; this page helps you check what stuck.

About this study guide. It’s built only from this course’s own content and the published Salesforce exam guide’s list of objectives. It is never based on real exam questions, and it doesn’t claim to know what’s on the exam. If you’ve taken the exam, please don’t send me questions from it: the certification agreement forbids sharing them, and memorizing answers is the wrong way to become an architect anyway.

This chapter carries the whole Maintain section of the exam (monitoring, escalation and recovery, reporting) and two Build objectives: error handling and resilience to releases. It starts from one habit: for every arrow out, where do I log, who do I tell, how do I retry; for every arrow in, how will they retry and recover?

Tick them off as you go. Each one links to where it’s taught.

Every arrow, out and in (BLD-4)

  • For every outbound arrow I can answer: where do I log, who do I tell, how do I retry. (Every Outbound Arrow)
  • For every inbound arrow I ask how they’ll retry and recover, and make my side safe to repeat. (Every Inbound Arrow)
  • I know who owns the error by pattern: Request and Reply, the caller; Fire and Forget, only the hand-off, with any retry custom; platform events, the subscriber replays; Remote Call-In, the remote system, with my side idempotent; batch, control and error tables and a restart. (Who Owns the Error, Pattern by Pattern)
  • I know the exam’s usual answer puts most handling in the middleware, and that each layer still has its part. (Top to Bottom)

Capture everything (BLD-4, MNT-1)

  • I know what one log entry holds, and that one shared ID through every layer lets me read the logs side by side. (What One Entry Holds, One ID, Through Every Layer)
  • I know a log written in a transaction that rolls back is lost, and the ways around it: a platform event with Publish Immediately, or Database.insertImmediate() to a big object. (The Log That Rolls Back)
  • I know big objects for logs at volume: insert-only, queried by an index that can’t change after deployment, no triggers, flows or standard UI. (At Volume)

The log is data (MNT-2)

  • I plan retention from day one: archive or discard “at the same rate at which it comes into the system”. (A Log Fills Up, Two Phases, Then Three Tiers)
  • I know the purge mechanics: custom object deletes go through the Recycle Bin; big object rows go with deleteImmediate(), naming every index field. (Purging at Volume)
  • I decide field by field what the log may hold, hash what I need to match, and keep the list in settings, not code. (Decide What the Log May Hold)

Retries without duplicates (BLD-4)

The return receipt (BLD-4, MNT-2)

Escalation and recovery (MNT-2)

What Salesforce shows you (MNT-1)

Reporting (MNT-3)

Resilience to releases (BLD-6)

  • I know Salesforce releases three times a year, and I pin and track my API version. (Three Times a Year, Your Version)
  • I know versions 31.0 to 40.0 are deprecated in Summer ‘27 and retired in Summer ‘28 (REST 410 GONE, SOAP UNSUPPORTED_API_VERSION, Bulk InvalidVersion); 21.0 to 30.0 retired in Summer ‘25; custom Apex REST and SOAP services aren’t affected. (Your Version)
  • I use Release Updates, the preview sandbox, and three kinds of test before every release. (Release Updates, Test Before Production Does, Three Kinds of Test)

The exam is the floor, not the ceiling. These are the habits from this chapter that an architect needs, whether or not a question ever asks about them.

  • Every arrow, out and in. Ask the questions until it’s a habit.
  • One ID through every layer.
  • The log is data: a retention plan and a masking list from day one.
  • One layer retries. Every retry ends somewhere a person sees.
  • None is a number too. Alert on silence.
  • An owner with a name, and a runbook on one page.
  • Three times a year, the same checklist.
TermIn one line
Failure planOne row per arrow: log, tell, retry, recover, owner
Integration logYour own record of every call, with one shared ID
Big objectSalesforce storage for very large, insert-only data
IdempotentSafe to receive twice
Circuit breakerStop calling a system that’s down, then try one call
Dead letter channelWhere work goes when its retries run out, for a person to see
Transactional outboxWhat was sent, saved with the change that caused it
Return receiptAn acknowledgment that proves delivery
RunbookOne page for whoever holds the alert
Event MonitoringSalesforce’s event log files of activity
Release UpdatesChanges with a due date, listed in Setup
Preview sandboxA sandbox upgraded weeks before production

Short scenarios in the style of the course. Decide your answer before you open it.

1. Apex catches an exception, writes an error to a log object, then rethrows. The log is always empty. Why?

The rethrow rolls back the whole transaction, the log record included. Log with a platform event set to Publish Immediately, or Database.insertImmediate() to a big object. Reread The Log That Rolls Back.

2. Salesforce retries three times, the middleware three times, and the partner's gateway three times. How many calls can one failure make?

Up to 27: retries multiply. One layer owns the retry; the others pass the failure on. Reread One Layer Retries, Not Every Layer.

3. The partner's system has been down for twenty minutes. Every status still tries, waits and fails. What do you add?

A circuit breaker: after enough failures it opens and stops calling, then lets one call through to test whether the system is back. Reread Stop Calling a System That’s Down.

4. `EventBus.publish` returned success. Was the event delivered?

No. That result only says it was queued. Publish callbacks give the final result, and only your own tracking with an acknowledgment proves delivery. Reread Three Kinds of Sent.

5. The admin gets a hundred integration emails a day and filters them away. What's the better design?

Alert on patterns and thresholds, with severity by user impact, to an owner with a runbook. Reread Alert on Patterns, Not Single Errors.

6. A listener was down from Friday night to Tuesday morning. How do you recover?

Past the 72-hour retention, replay can’t reach the start. Resync the changes since the last known-good point, then resume from the latest. Reread Recovery in Three Sizes.

7. Your integration log is a big object. The manager wants a weekly report. How?

Standard reports don’t run on big objects. Copy the counts or the failures into a custom object, and report on that. Reread Where the Numbers Come From.

8. An old integration calls the REST API on version 38.0. What happens, and when?

Versions 31.0 to 40.0 are deprecated in Summer ‘27 and retired in Summer ‘28; after that, REST returns 410 GONE. Find the caller with the API Total Usage log, and move it. Reread Your Version, at the Bottom of the List.