I'm looking for a solution that implements MongoDB-backed (version 4) remote FIFO queue for golang (something like https://www.npmjs.com/package/rethinkdb-job-queue for node.js and rethinkdb). Several independent processes on different machines should have the possibility to add tasks to a queue in parallel and pop tasks from it in the way when one task can be assigned only to one worker at the moment. Also, there should be the possibility to return a task back to the queue if it was failed (or throw it away if it was failed more than N times). It's very desirable if MongoDB would be shardable in such schema. I've found some solution which looks like what I'm looking for: https://github.com/mongodb/amboy But there are too few usage examples on the Internet. Can you suggest me anything (amboy usage examples, other solutions or best practices)?