This is more of a theoretical question and probably goes more to design and I hope I can do this justice.
I have successfully coded in apex multiple triggers which make callouts using the @future (callout=true). These work just fine and I do realize when using the @future these are asynchrous calls and thus I do not have control when salesforce will process although it is usually pretty fast. All that being said.
We have a new community and the issue is it is making multiple insert/updates in a single transaction. My triggers fire and the @future callouts are made which are intended to put data into an external system. The issue as you may imagine is sometimes children get to the external system prior to the parent and I get 500 error codes which is probably due to that scenario but cant guarantee it. A retry feature would be nice as I believe it is an order of when the the external system processes the data at the endpoint.
I mention Queueable apex as I have loosely encounter discussions that the solution could possibly be found here. I am not necessarily tied to solving this issue via Queueable apex but maybe someone has encountered a similiar sceneario.
The real question is has anyone solved an issue like this and how did you do it?