Exactly-once guarantees have boundaries; external side effects usually live beyond them.
messagingtransactions
Why Isn't Exactly-Once Actually Exactly Once?
“Exactly once” is not meaningless. It is incomplete without a boundary.
Guarantees belong to a system boundary
A broker may atomically consume and produce records inside its own transaction model. It cannot atomically include an unrelated payment API or email provider.
Ask the sharper question
Instead of asking whether the architecture is exactly once, ask: which observable effect is guaranteed, and by whom?