What is the difference between an implementation of a queue (like rabbitMQ) and maintaining a queue? Someone has said that implementing a queue is the job of a developer but