<?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>Design a Scalable Notification System</title>
      <dc:creator>Subham Ghosh</dc:creator>
      <pubDate>Sun, 01 Nov 2026 13:27:48 +0000</pubDate>
      <link>https://dev.to/subham01/design-a-scalable-notification-system-n7f</link>
      <guid>https://dev.to/subham01/design-a-scalable-notification-system-n7f</guid>
      <description>&lt;p&gt;Designing a scalable notification system sounds straightforward until - A 10M marketing blast delaying a single login OTP by 4 minutes will kill your checkout conversion faster than a database outage.&lt;/p&gt;

&lt;p&gt;The naive architecture of dumping every notification into a shared message broker with a priority header guarantees head-of-line blocking the second a surge hits.&lt;/p&gt;

&lt;p&gt;Here is how I design a notification engine to enforce a strict &amp;lt;5s p99 OTP SLA at 16M+ daily events without dropping a single packet:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The Ingestion &amp;amp; Isolation Path: Upstream Service ➔ Stateless Gateway ➔ Redis Dedup Shield (atomic SETNX) ➔ HTTP 202 Accepted ➔ Physical Kafka Priority Topics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Smart Core &amp;amp; Egress Path: Dedicated Worker Pool ➔ Smart Core (Quiet Hours + Redis Debounce + Hydration) ➔ Distributed Token Bucket Limiter ➔ Vendor APIs (APNs / Twilio / SendGrid)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When scaling this to production, watch out for these 3 traps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The Priority Flag Illusion Relying on priority headers inside a shared Kafka topic fails because consumer threads spend all their cycles de-queueing bulk marketing payloads while urgent OTPs sit starved in partition lag. We solve this with physical isolation: dedicated, high-priority Kafka topics consumed by autonomous worker pools provisioned for zero queuing, keeping OTP p99 delivery latency under 3s.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Vendor Throttling Meltdown Calling external provider APIs (Twilio, SendGrid, APNs) synchronously inside your consumer workers will exhaust thread pools the millisecond an upstream vendor experiences a latency spike or throws HTTP 429s. You must decouple egress using distributed Token Bucket rate limiters in Redis and enforce message custody in Kafka before external invocation, allowing bounded exponential backoff instead of silent drops.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The "Double-Tap" Resend Storm Querying a relational database to verify if an alert was already dispatched collapses under load when anxious users tap "Resend Code" 6 times in 5 seconds during an outage. We drop a Redis Deduplication Shield directly at the API Gateway using atomic SETNX with a sliding 60-second TTL on userId:eventType, returning an immediate cached HTTP 202 without &lt;br&gt;
generating downstream broker traffic.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I broke down the complete architecture - including the sub-5s OTP failure latency budget, the Two-Stage Kafka topic pipeline, and how chronological Kafka delay topics replace database retry polling - in my full system design write-up here:&lt;br&gt;
&lt;a href="https://engineering.by-tech.workers.dev/articles/scalable-notification-system-design/" rel="noopener noreferrer"&gt;https://engineering.by-tech.workers.dev/articles/scalable-notification-system-design/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Golden Rule for Notification Egress: If an authentication OTP doesn't arrive in under 5 seconds, the user assumes your entire platform is down. If a promotional discount notification arrives 30 minutes late, nobody notices.&lt;/p&gt;

&lt;p&gt;Never let bulk traffic share the same connection pool, Kafka partition, or egress rate limiter as auth traffic.&lt;/p&gt;
&lt;h1&gt;
  
  
  SystemDesign #DistributedSystems #BackendEngineering #Kafka #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%2Fzi8zellext6sroevmcsz.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%2Fzi8zellext6sroevmcsz.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/JSHvehqM6Wk" width="710" height="399"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>systemdesign</category>
      <category>distributedsystems</category>
      <category>backenddevelopment</category>
      <category>softwaredevelopment</category>
    </item>
    <item>
      <title>Hotel Booking System like Booking.com</title>
      <dc:creator>Subham Ghosh</dc:creator>
      <pubDate>Sun, 25 Oct 2026 14:29:08 +0000</pubDate>
      <link>https://dev.to/subham01/hotel-booking-system-like-bookingcom-46nb</link>
      <guid>https://dev.to/subham01/hotel-booking-system-like-bookingcom-46nb</guid>
      <description>&lt;p&gt;When 500 travelers simultaneously click "Book" on the last 3 rooms for a holiday weekend while 9,000 search QPS runs multi-table availability joins, a single relational database melts down. Slow search queries starve the connection pool, concurrent checkouts deadlock on overlapping dates, and naive hold timers risk billing users after their room expires.&lt;/p&gt;

&lt;p&gt;Hospitality traffic follows a steep 1,000:1 search-to-booking funnel, keeping search and checkout fast requires splitting the architecture across a strict CQRS boundary:&lt;/p&gt;

&lt;p&gt;𝟭. 𝗥𝗲𝗮𝗱 𝗣𝗮𝘁𝗵 (9,000 Peak QPS, p95 &amp;lt; 200ms): &lt;br&gt;
Client -&amp;gt; API Gateway -&amp;gt; BFF -&amp;gt; Search Service -&amp;gt; Elasticsearch (Geo &amp;amp; Facet Filters) -&amp;gt; Redis (Room Availability Counters) + Rate Service&lt;/p&gt;

&lt;p&gt;𝟮. 𝗪𝗿𝗶𝘁𝗲 &amp;amp; 𝗦𝘆𝗻𝗰 𝗣𝗮𝘁𝗵 (300 Peak Hold QPS, p95 &amp;lt; 500ms): &lt;br&gt;
Client -&amp;gt; API Gateway (Idempotency Lease) -&amp;gt; Booking Service -&amp;gt; MySQL Primary (Inventory Lock + Outbox) + SQS (10-Min Hold Timer) -&amp;gt; CDC Stream -&amp;gt; Kafka -&amp;gt; Redis &amp;amp; Elasticsearch&lt;/p&gt;

&lt;p&gt;The full two-tier idempotency design, the search pagination vs. sold-out rooms dilemma, and the 10x database sharding strategy are covered in the complete system design write-up here: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://engineering.by-tech.workers.dev/articles/hotel-booking-system-design/" rel="noopener noreferrer"&gt;https://engineering.by-tech.workers.dev/articles/hotel-booking-system-design/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Even after separating reads from writes, three edge cases will still break checkout in production:&lt;/p&gt;

&lt;p&gt;𝟭. 𝗧𝗵𝗲 𝗠𝘂𝗹𝘁𝗶-𝗡𝗶𝗴𝗵𝘁 𝗗𝗲𝗮𝗱𝗹𝗼𝗰𝗸 &lt;br&gt;
If User A locks Dec 20 then Dec 21 while User B locks Dec 21 then Dec 20, the database deadlocks. Instead of tracking individual physical rooms, we store one daily counter per room type and always lock rows in strict chronological order (Dec 20 -&amp;gt; Dec 21), keeping lock times under 5ms&lt;/p&gt;

&lt;p&gt;𝟮. 𝗧𝗵𝗲 𝗟𝗮𝘀𝘁-𝗦𝗲𝗰𝗼𝗻𝗱 𝗣𝗮𝘆𝗺𝗲𝗻𝘁 𝗥𝗮𝗰𝗲&lt;br&gt;
If a guest clicks "Pay" at minute 9:59 right as the 10-minute hold timer expires, the timer might release the room while the bank charges their card. To prevent charging for a lost room, checkout atomically flips the booking status to PAYMENT_PROCESSING before calling the payment gateway—which tells the background timer to back off.&lt;/p&gt;

&lt;p&gt;𝟯. 𝗧𝗵𝗲 𝗗𝗶𝘀𝘁𝗿𝗶𝗯𝘂𝘁𝗲𝗱 𝗟𝗼𝗰𝗸 𝗧𝗮𝘅 &lt;br&gt;
Putting Bookings and Room Inventory in separate microservices with separate databases forces you into slow two-phase commits during checkout. Keeping reservations and daily inventory counters (73M rows for 2 years = 7.3 GB in RAM) in the same MySQL database lets a single local ACID transaction secure the hold in 2ms.&lt;/p&gt;

&lt;h1&gt;
  
  
  SystemDesign #DistributedSystems #BackendEngineering #MySQL #Kafka
&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%2F2kgnqb9j323t2qqqgnxq.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%2F2kgnqb9j323t2qqqgnxq.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>systemdesign</category>
      <category>backenddevelopment</category>
      <category>architecture</category>
    </item>
    <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>
