Evaluation of Distributed Messaging Queue Design
Evaluate the proposed system based on the functional and non-functional requirements.
We have completed the design of distributed messaging queue. Let’s analyze whether the design met the functional and non-functional requirements.
Functional requirements
-
Queue creation and deletion: When a request for a queue is received at the front-end, after essential checks, the queue is created with the necessary details provided by the client. The corresponding cluster manager assigns servers to the newly created queue and updates the information in metadata stores and caches through metadata service.
Similarly, when the client does not need the queue anymore it is deleted accordingly. The responsible cluster manager deallocates the space occupied by the queue and consequently deletes the data from the metadata stores and caches.
Dead-letter queues!
How to handle messages that can’t be processed (consumed) after maximum processing attempts by the consumer?
-
Send and receive messages: Producers can deliver messages to specified queues once they are created. At the backend, receiving messages are sorted based on time-stamps to preserve the order and are placed in the queue. Similarly, a consumer can retrieve messages from a specified queue.
When a message is received from a producer for a specific queue, the front-end identifies the primary host or cluster (depends on the replication ...
Create a free account to access the full course.
By signing up, you agree to Educative's Terms of Service and Privacy Policy