<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Subham Ghosh</title>
    <description>The latest articles on DEV Community by Subham Ghosh (@subham01).</description>
    <link>https://dev.to/subham01</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F527873%2F07880bb4-9f0f-4311-8b82-f799b36344aa.jpeg</url>
      <title>DEV Community: Subham Ghosh</title>
      <link>https://dev.to/subham01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/subham01"/>
    <language>en</language>
    <item>
      <title>Designing an Email Service at Scale</title>
      <dc:creator>Subham Ghosh</dc:creator>
      <pubDate>Sun, 18 Oct 2026 02:48:57 +0000</pubDate>
      <link>https://dev.to/subham01/designing-an-email-service-at-scale-3em8</link>
      <guid>https://dev.to/subham01/designing-an-email-service-at-scale-3em8</guid>
      <description>&lt;p&gt;How do you build a distributed platform that handles 1 billion users, 50 billion daily messages, and petabytes of storage with zero data loss?&lt;/p&gt;

&lt;p&gt;Dive into the complete engineering breakdown here: &lt;br&gt;
&lt;a href="https://engineering.by-tech.workers.dev/articles/designing-an-email-service/" rel="noopener noreferrer"&gt;https://engineering.by-tech.workers.dev/articles/designing-an-email-service/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At a high level, modern email architecture operates as two independent, one-way pipelines bridging legacy protocols and cloud-native systems:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Outbound Delivery: Users submit messages via HTTPS REST APIs, where payloads are immediately offloaded to S3. Delivery tasks are queued in Kafka, and outbound workers manage DKIM signing and DNS MX resolution before delivering over SMTP.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Inbound Ingestion: Edge gateways terminate global Anycast connections on port 25 and perform lightweight SPF/DMARC checks. Heavy message bodies stream to S3, while a Kafka claim-check pointer triggers deep scanning, Cassandra metadata writes, and real-time WebSocket pushes to active devices.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Key technical constraints discussed in the article:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The Custody Contract: Why returning an SMTP 250 OK is an irreversible legal commitment that must wait for multi-AZ Kafka replication.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Dual-Write Trap: How using a single-partition Cassandra atomic batch for transactional outboxes guarantees emails are never saved without also being queued for delivery.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Backscatter Prevention: How sending an automated bounce to a forged address can instantly get your outbound IP blacklisted by major ISPs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Data Modeling: Sharding Cassandra by user_id and monthly time buckets to keep read latency under 200ms without unbounded partition growth.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1jlv84dy87ks6y29jd1e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1jlv84dy87ks6y29jd1e.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>systemdesign</category>
      <category>distributedsystems</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Design a metrics monitoring system</title>
      <dc:creator>Subham Ghosh</dc:creator>
      <pubDate>Sun, 11 Oct 2026 05:15:08 +0000</pubDate>
      <link>https://dev.to/subham01/design-a-metrics-monitoring-system-1a7l</link>
      <guid>https://dev.to/subham01/design-a-metrics-monitoring-system-1a7l</guid>
      <description>&lt;p&gt;How do you design a metrics monitoring system for 100,000 servers?&lt;/p&gt;

&lt;p&gt;I’ve shared my approach here: &lt;a href="https://engineering.by-tech.workers.dev/articles/metrics-monitoring-system-design/" rel="noopener noreferrer"&gt;https://engineering.by-tech.workers.dev/articles/metrics-monitoring-system-design/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here’s the high-level flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Agents collect metrics; a durable message queue buffers them.&lt;/li&gt;
&lt;li&gt;A time-series database stores metrics for dashboard queries.&lt;/li&gt;
&lt;li&gt;A stream processor evaluates alert rules independently of dashboard storage.&lt;/li&gt;
&lt;li&gt;Notification workers deliver alerts and retry failed sends.&lt;/li&gt;
&lt;li&gt;Older measurements become summaries to keep storage manageable.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I also cover capacity planning, push vs. pull collection, data retention, and recovery from failures - along with alert rules for sustained spikes and missing data, since a brief CPU spike needs a different response from prolonged overload.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp17te5ob9ir9ycfpnzmx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp17te5ob9ir9ycfpnzmx.png" alt=" " width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>systemdesign</category>
      <category>monitoring</category>
      <category>architecture</category>
    </item>
    <item>
      <title>What Does It Take to Build a Correct Real-Time Leaderboard?</title>
      <dc:creator>Subham Ghosh</dc:creator>
      <pubDate>Sat, 03 Oct 2026 15:14:45 +0000</pubDate>
      <link>https://dev.to/subham01/what-does-it-take-to-build-a-correct-real-time-leaderboard-4j7h</link>
      <guid>https://dev.to/subham01/what-does-it-take-to-build-a-correct-real-time-leaderboard-4j7h</guid>
      <description>&lt;p&gt;What happens when a gaming leaderboard must stay fast, accurate, retry-safe, and recoverable—even while millions of players are competing?&lt;/p&gt;

&lt;p&gt;The article below captures my thought process and understanding of how to design this system:&lt;br&gt;
&lt;a href="https://engineering.by-tech.workers.dev/articles/real-time-gaming-leaderboard-hld/" rel="noopener noreferrer"&gt;https://engineering.by-tech.workers.dev/articles/real-time-gaming-leaderboard-hld/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The challenge isn’t simply displaying the Top 10. It’s preventing duplicate score updates, handling out-of-order events, returning exact player ranks, recovering after data loss, and safely finalizing tournament results.&lt;/p&gt;

&lt;p&gt;The design covers idempotent score processing, Redis sorted sets, live updates, deterministic tie-breaking, sharding, and multi-region consistency.&lt;/p&gt;

&lt;h1&gt;
  
  
  SystemDesign #DistributedSystems #BackendEngineering #Redis
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxqm8nxmaildpuivsz39p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fxqm8nxmaildpuivsz39p.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>backenddevelopment</category>
      <category>systemdesign</category>
      <category>software</category>
    </item>
    <item>
      <title>Under the Hood: Distributed Message Broker Design, Storage, and Failure Modes</title>
      <dc:creator>Subham Ghosh</dc:creator>
      <pubDate>Sun, 27 Sep 2026 12:30:11 +0000</pubDate>
      <link>https://dev.to/subham01/under-the-hood-distributed-message-broker-design-storage-and-failure-modes-1pan</link>
      <guid>https://dev.to/subham01/under-the-hood-distributed-message-broker-design-storage-and-failure-modes-1pan</guid>
      <description>&lt;p&gt;Most discussions about message brokers stay at a high level, placing generic broker boxes on a system architecture diagram. In practice, building or operating a distributed message broker requires understanding specific mechanics around storage, replication, and consumer coordination.&lt;/p&gt;

&lt;p&gt;I wrote a detailed walkthrough analyzing how a fault-tolerant message broker works under the hood. It focuses on implementation details, edge cases, and failure modes rather than surface-level component diagrams. It is structured to be useful for engineers at any experience level.&lt;/p&gt;

&lt;p&gt;Full article: &lt;a href="https://engineering.by-tech.workers.dev/articles/distributed-message-broker-system-design/" rel="noopener noreferrer"&gt;https://engineering.by-tech.workers.dev/articles/distributed-message-broker-system-design/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key Concepts Covered&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Ordering vs Throughput: Using partition-based append-only logs to achieve horizontal scaling while maintaining strict ordering per key.&lt;/li&gt;
&lt;li&gt;Replication Semantics: What acks=all and min.insync.replicas actually protect against during leader failures, and where failure windows still exist.&lt;/li&gt;
&lt;li&gt;Duplicate Processing: Why consumer crashes lead to duplicate downstream side effects, and how generation fencing, idempotency keys, and transa
ctional outbox patterns prevent state corruption.&lt;/li&gt;
&lt;li&gt;Operational Boundaries: Managing backpressure, slow consumers falling behind retention windows, and broker disk exhaustion.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Architecture and Parameters Evaluated&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Storage Engine: Partitioned, append-only retained logs optimized for sequential disk I/O.&lt;/li&gt;
&lt;li&gt;Replication Factor: 3 replicas with min.insync.replicas = 2.&lt;/li&gt;
&lt;li&gt;Consumer Coordination: Generation-fenced offset commits to reject stale consumer writes after rebalances.&lt;/li&gt;
&lt;li&gt;Reliability Features: Retry topics, Dead Letter Queues, quotas, and retention cleanup policies.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to connect every architectural decision directly to a specific failure mode and detail the trade-offs involved.&lt;/p&gt;

&lt;p&gt;Feedback, questions, and discussion are welcome in the comments!&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>backend</category>
      <category>infrastructure</category>
      <category>systemdesign</category>
    </item>
    <item>
      <title>How Google Drive Syncs Files and Resolves Concurrent Edits</title>
      <dc:creator>Subham Ghosh</dc:creator>
      <pubDate>Sun, 20 Sep 2026 04:41:28 +0000</pubDate>
      <link>https://dev.to/subham01/how-google-drive-syncs-files-and-resolves-concurrent-edits-d9j</link>
      <guid>https://dev.to/subham01/how-google-drive-syncs-files-and-resolves-concurrent-edits-d9j</guid>
      <description>&lt;p&gt;File synchronization looks simple until devices go offline, files become large, and multiple users edit the same content.&lt;br&gt;
This article examines a Google Drive–style sync architecture and the problems behind reliable file updates:&lt;/p&gt;

&lt;p&gt;Offline edits reconnecting at the same time&lt;br&gt;
Large files with only small changes&lt;br&gt;
Out-of-order retries, metadata updates, and notifications&lt;br&gt;
Concurrent edits and version conflicts&lt;br&gt;
The accompanying HLD diagram maps the flow across the client, API gateway, metadata server, block server, metadata database, and object storage. The article explains how these components interact during synchronization.&lt;br&gt;
&lt;strong&gt;Read the full article: &lt;a href="https://engineering.by-tech.workers.dev" rel="noopener noreferrer"&gt;https://engineering.by-tech.workers.dev&lt;/a&gt;&lt;/strong&gt;&lt;br&gt;
Any feedback, questions, or discussion are welcome.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbr334w9kbedqhty84znz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbr334w9kbedqhty84znz.png" alt=" " width="799" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
