Member-only story
Dissecting ByteByteGo’s Notification System Design Solution
A closer look into the proposed system design outlined in the solution with an effort to extract the important lessons
In this article, I refer to the Notification System Design solution by ByteByteGo, as detailed at https://bytebytego.com/courses/system-design-interview/design-a-notification-system. It is a paid subscription, but subscribing is not necessary to understand the lessons discussed in this article.
For the rest of this article I’ll go ahead breaking down the design decisions in a Q&A format…
Why is there a separate queue for each notification type?
For each notification type a separate queue has been introduced along with dedicated workers to process the messages for that queue. This was necessary and preferred over a single queue for all notification message types which aims to avoid issues when a third-party notification service (e.g. Twilio) becomes no longer available for a short time. This might flood the single queue with numerous SMS notification messages that would result in affecting other types of notifications waiting on the same queue but never reaching their workers due to Twilio being down.