12.2Why duplicates happen even when your code is “correct”
Imagine:
Mule
↓
Salesforce Upsert
↓
Salesforce commits successfully
↓
response gets lost
X
Mule sees timeout
Mule cannot know whether Salesforce committed.
So caller retries:
same request again
This is normal distributed-system behavior.
That is why this sentence is worth memorizing:
“A timeout is an ambiguous outcome, not proof that the downstream write failed.”