Nothing to stop you putting a queue in the middle of it (unless I’ve missed something). If you are doing multiple data calls (to the internet) and then *combining* that data in the second function, then you’re doing something more complex. I would suggest that you still use a queue anyway, as there is inherent risk in something like that breaking, and a queue is a neat circuit breaker in there. It also means you don’t need to run it all from the start if something goes wrong in f2.
Rules are there to be broken. There are always going to be edge cases that break these best practices. That’s fine by me. Best is not Only.