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,
, andqueue size A 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. 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.