Is there a way to get exactly-once delivery while using the transactional APIs for sending emails (Within some short window)? The status codes do not provide the sufficient information - Adobe Campaign Standard API . The issue is specially in case of any gateway issues like 502, 503, 504 there is no way for the client's to know that a retry wouldn't cause a duplicate email to be sent out. Looking for some guidance here.
The nature of transactional messages is such that the execution needs to be completed as soon as possible. For this 'realtime' need, all effort goes into not using a database as they slow the performance down. Given this speed of execution, there are minimum checks that should be done before sending the message.
If you had to check, you might be able to test out using Typology rules to limit the number of profile-based transactional messages. I have not tried it myself so can't comment on the nuances. I believe you can set them up to send a single transactional message for a rolling period.
Another significant consideration is the fact that most of the times, delivery of transactional messages are regulated and should not be suppressed. Please ensure that this regulation does not bind your transactional messages.