🎉 75% of content is free forever — Unlock Premium from $10/mo →
CW
đŸ’ŧ Servicesâ„šī¸ Aboutâœ‰ī¸ ContactView Pricing Plansfrom $10

Design an Email System

System Design ProblemsEmail InfrastructuređŸŸĸ Free Lesson

Advertisement

System Design Problems

Design an Email System

An email system handles sending, receiving, storing, and searching email across billions of users. Gmail alone stores 1.8 billion users' email with 15 GB free storage per account, requiring distributed storage, spam filtering, and strong delivery guarantees.

  • Send/Receive — SMTP-based delivery with retry and bounce handling
  • Storage — Petabytes of email data with per-user organization
  • Search — Full-text search across billions of messages

Email is a distributed system by design: different mail servers communicate via SMTP, store messages locally, and handle delivery failures gracefully.

Requirements

Functional Requirements

  • Send and receive email (SMTP/IMAP/POP3)
  • Inbox, sent, drafts, spam, trash folders
  • Full-text search across email content
  • Attachment support (up to 25 MB)
  • Spam and phishing detection
  • Email forwarding and auto-reply rules
  • Read receipts and delivery status

Non-Functional Requirements

  • Delivery: At-least-once delivery with exactly-once semantics
  • Latency: Email delivered within 30 seconds
  • Storage: 15 GB per user, 1.8 billion users
  • Search: Full-text search in < 1 second
  • Spam: Filter > 99% of spam emails
  • Availability: 99.99%

Back-of-the-Envelope Estimation

API Design

Architecture Diagram
POST /api/v1/messages/send
Request: {
  "to": ["user@example.com"],
  "subject": "Hello",
  "body": "Plain text or HTML",
  "attachments": ["file_id_123"]
}
Response: { "message_id": "msg_abc123", "status": "queued" }

GET /api/v1/messages?folder=inbox&limit=50
Response: { "messages": [...], "total": 1234 }

GET /api/v1/messages/msg_abc123
Response: { "message_id": "...", "from": "...", "body": "..." }

GET /api/v1/search?q=invoice+2026
Response: { "messages": [...], "count": 42 }

High-Level Architecture

SenderSMTP ServerMTA (Send)MX LookupRetry QueueKafkaProcessingSpam FilterVirus ScanDLP RulesIndexingRules EngineSpam DB(Bloom filter)Email Store(Bigtable/S3)Email System Architecture

Detailed Design

Email Delivery Flow

SenderSender MTAMX Lookup(DNS)Recipient MTA(Store)InboxSMTP delivery flow with store-and-forward

SMTP Protocol

Architecture Diagram
S: 220 mail.example.com ESMTP
C: HELO sender.com
S: 250 Hello
C: MAIL FROM:<sender@sender.com>
S: 250 OK
C: RCPT TO:<recipient@example.com>
S: 250 OK
C: DATA
S: 354 Start mail input
C: Subject: Hello
C: From: sender@sender.com
C: To: recipient@example.com
C: 
C: This is the email body.
C: .
S: 250 OK: Message queued
C: QUIT

Spam Filtering

Email Storage

Store emails in a distributed storage system:

ComponentTechnologyReason
Email bodiesObject Storage (S3)Large blobs, cost-effective
MetadataBigtable/CassandraFast lookups, time-series
Full-text indexElasticsearchSearch across content
Spam databaseRedis/Bloom filterFast membership checks

Delivery Guarantees

Practice Exercises

  1. Design: How would you implement email forwarding rules (e.g., "forward emails from boss to phone")? Design the rules engine.

  2. Scale: If Gmail stores 15 GB per user for 1.8 billion users, estimate the total storage needed and the distributed storage architecture.

  3. Reliability: Design a system to guarantee exactly-once email delivery. What challenges arise from SMTP retries and network partitions?

  4. Search: How would you implement full-text search across 100 billion emails? What indexing strategy would you use?


What to Learn Next

-> Design Notification System Multi-channel notification delivery patterns.

-> Message Queues Kafka for async email processing and delivery.

-> Design Object Storage Storing email attachments at scale.

-> Databases Bigtable/Cassandra for email metadata storage.

-> Rate Limiting Preventing email abuse and spam.

-> Security Patterns Email encryption (PGP/S/MIME) and authentication (DKIM/SPF).

Need Expert System Design Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement