Our #RubyOnRails apps at GaggleAMP have published content to 3rd Party APIs for almost 10 years. Here are some things we've put in place to reliably perform these API calls from our apps’ background job workers:
.
.
Thread👇
We use a state machine to control the process. The diagram below shows a simplified version of our state machine (some states for app-specific functionality are not shown). At the row level, we store the current state along with a timestamp to allow future scheduling. 2/