Requirements of a Distributed Messaging Queue’s Design

Learn about the requirements of designing a distributed messaging queue using a strawman solution.

Requirements

In a distributed messaging queue, data resides on several machines. Our aim is to design a distributed messaging queue that has the following functional and non-functional requirements.

Functional requirements

Listed below are the actions that a client should be able to perform:

  • Queue creation: The client should be able to create a queue and set some parameters—for example, queue name, queue sizeA queue size is the maximum number of messages a queue can contain. For example, Amazon’s standard queue size is unlimited. However, for inflight messages, the size is limited to 120,000., and maximum message size.MaxMessageSize

  • Send message: Producer entities should be able to send messages to a queue that’s intended for them.

  • Receive message: Consumer entities should be able to receive messages from their respective queues.

  • Delete message: The consumer processes should be able to delete a message from the queue after a successful processing of the message.

  • Queue deletion: Clients should be able to delete a specific queue.