ByteByteGo Newsletter

Share this post

Design Gmail

blog.bytebytego.com

Design Gmail

Alex Xu
Jan 21, 2022
22
1
Share this post

Design Gmail

blog.bytebytego.com

One picture is worth more than a thousand words. In this post, we will take a look at what happens when Alice sends an email to Bob.

1. Alice logs in to her Outlook client, composes an email, and presses “send”. The email is sent to the Outlook mail server. The communication protocol between the Outlook client and mail server is SMTP.

2. Outlook mail server queries the DNS (not shown in the diagram) to find the address of the recipient’s SMTP server. In this case, it is Gmail’s SMTP server. Next, it transfers the email to the Gmail mail server. The communication protocol between the mail servers is SMTP.

3. The Gmail server stores the email and makes it available to Bob, the recipient.

4. Gmail client fetches new emails through the IMAP/POP server when Bob logs in to Gmail.

Please keep in mind this is a highly simplified design. Hope it sparks your interest and curiosity:) I'll explain each component in more depth in the future.


If you enjoyed this post, you might like our system design interview books as well.

SDI-vol1: https://amzn.to/3tK0qQn

SDI-vol2: https://amzn.to/37ZisW9

1
Share this post

Design Gmail

blog.bytebytego.com
1 Comment
Melvin Canafranca
Aug 11, 2022

The Gmail client can also work as a listener for new messages. Thinking that a webhook is present in the client that will be informed (new message event) by the server to fetch the whole message.

Expand full comment
ReplyCollapse
TopNewCommunity

No posts

Ready for more?

© 2023 ByteByteGo
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing