BC
Sorry for the slow reply, Ege, I missed this one. "Compensation is never hidden in a catch block" is a better one-liner than anything in the post. Caller-owned keys plus a durable record of intent is the right pair: the provider's request ID only protects you from the provider, not from your own retry path. That boundary is what my next post is about: separating replay-safe effects from committed actions so the runtime knows which is which without inferring it from a function name. effects actions and why workflow runtimes need side effect boundaries