Evaluation of a Distributed Messaging Queue’s Design
We'll cover the following...
With the design complete, we now analyze how the proposed architecture satisfies the functional and non-functional requirements of a distributed messaging queue.
Functional requirements compliance
Queue creation and deletion:
Creation: When the front-end receives a creation request, it validates the client’s details. The cluster manager assigns servers to the new queue and updates the metadata stores and caches via the metadata service.
Deletion: When a client requests deletion, the cluster manager deallocates the queue’s storage space and removes the associated data from metadata stores and caches.
How should we handle messages that a consumer fails to consume after the maximum number of retry attempts?
Send and receive messages: Producers deliver messages to specific queues. At the backend, incoming messages are sorted by timestamps to preserve order and placed in the queue. Consumers then ...