Recently I moved an API integration to use Oban (https://hex.pm/packages/oban).
Previously we had been making API calls to a third party that we need to notify of changes. Our old implementation simple made the call and logged errors. This meant we had to spend time checking logs for possible problems.
After the move to Oban (we use the paid for add-on Oban Web) items needing attention now have a UI.
I have not yet worked out how best to model “wait for an email then retry”.