As long as you manage permissions correctly, the final decision is up to you. First, you can try all the options and find one that suits your actual needs.
Having a local queue can have pros and cons: it allows end users to survive some failures with their infrastructure or network problem due to your disk / memory, however you can limit the queue length and / or size.
I would advise you to take a look at the smooth fin and Dynamic shovels . In a local queue, it may work well.
Comparing with the federation, a shovel is much simpler, for example. it does not synchronize content between the upstream and downstream, but simply transfers the message from one queue to another in a reliable manner. As long as you don't need any federation, a shovel may be a good choice.
Also, you may find this q / a useful (however it may be a bit dated) - stack overflow site/questions/151836 / ....
pinepain
source share