Files
nexus/sreweekly/articles/62/01-think-of-latency-as-a-pseudo-permanent-network-partition.html
2026-09-12 17:23:01 +08:00

535 lines
33 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Think of Latency as a Pseudo-permanent Network Partition - High Scalability -</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="preload" as="style" href="https://highscalability.com/assets/built/screen.css?v=QpNBjlSbNzyRyl6s">
<link rel="preload" as="script" href="https://highscalability.com/assets/built/source.js?v=uMULaSMoSjM4gY5C">
<link rel="preload" as="font" type="font/woff2" href="https://highscalability.com/assets/fonts/inter-roman.woff2?v=OecsB5TBLy27FKD2" crossorigin="anonymous">
<style>
@font-face {
font-family: "Inter";
font-style: normal;
font-weight: 100 900;
font-display: optional;
src: url(https://highscalability.com/assets/fonts/inter-roman.woff2?v=OecsB5TBLy27FKD2) format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
</style>
<link rel="stylesheet" type="text/css" href="https://highscalability.com/assets/built/screen.css?v=QpNBjlSbNzyRyl6s">
<style>
:root {
--background-color: #ffffff
}
</style>
<script>
/* The script for calculating the color contrast has been taken from
https://gomakethings.com/dynamically-changing-the-text-color-based-on-background-color-contrast-with-vanilla-js/ */
var accentColor = getComputedStyle(document.documentElement).getPropertyValue('--background-color');
accentColor = accentColor.trim().slice(1);
if (accentColor.length === 3) {
accentColor = accentColor[0] + accentColor[0] + accentColor[1] + accentColor[1] + accentColor[2] + accentColor[2];
}
var r = parseInt(accentColor.substr(0, 2), 16);
var g = parseInt(accentColor.substr(2, 2), 16);
var b = parseInt(accentColor.substr(4, 2), 16);
var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;
var textColor = (yiq >= 128) ? 'dark' : 'light';
document.documentElement.className = `has-${textColor}-text`;
</script>
<link rel="canonical" href="https://highscalability.com/think-of-latency-as-a-pseudo-permanent-network-partition/">
<meta name="referrer" content="no-referrer-when-downgrade">
<meta property="og:site_name" content="High Scalability">
<meta property="og:type" content="article">
<meta property="og:title" content="Think of Latency as a Pseudo-permanent Network Partition - High Scalability -">
<meta property="og:description" content="The title of this post is a quote from Ilya Grigorik&#x27;s post Weak Consistency and CAP Implicati...">
<meta property="og:url" content="https://highscalability.com/think-of-latency-as-a-pseudo-permanent-network-partition/">
<meta property="og:image" content="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/2024/02/4831919243_4612be4d25_o-1.jpg">
<meta property="article:published_time" content="2010-08-12T14:21:11.000Z">
<meta property="article:modified_time" content="2024-02-02T12:48:08.000Z">
<meta property="article:tag" content="Strategy">
<meta property="article:tag" content="CAP">
<meta property="article:publisher" content="https://www.facebook.com/ghost">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Think of Latency as a Pseudo-permanent Network Partition - High Scalability -">
<meta name="twitter:description" content="The title of this post is a quote from Ilya Grigorik&#x27;s post Weak Consistency and CAP Implications. Besides the article being excellent, I thought this idea had something to add to the great NoSQL versus RDBMS debate, where Mike Stonebraker makes the argument that network partitions are rare so">
<meta name="twitter:url" content="https://highscalability.com/think-of-latency-as-a-pseudo-permanent-network-partition/">
<meta name="twitter:image" content="https://static.ghost.org/v5.0.0/images/publication-cover.jpg">
<meta name="twitter:label1" content="Written by">
<meta name="twitter:data1" content="High Scalability">
<meta name="twitter:label2" content="Filed under">
<meta name="twitter:data2" content="Strategy, CAP">
<meta name="twitter:site" content="@ghost">
<meta name="twitter:creator" content="@highscal">
<meta property="og:image:width" content="175">
<meta property="og:image:height" content="131">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"publisher": {
"@type": "Organization",
"name": "High Scalability",
"url": "https://highscalability.com/",
"logo": {
"@type": "ImageObject",
"url": "https://highscalability.com/favicon.ico",
"width": 48,
"height": 48
}
},
"author": {
"@type": "Person",
"name": "High Scalability",
"image": {
"@type": "ImageObject",
"url": "https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/2024/03/hs.jpeg",
"width": 400,
"height": 400
},
"url": "https://highscalability.com/author/hs/",
"sameAs": [
"https://blog.bytebytego.com/",
"https://x.com/highscal"
]
},
"headline": "Think of Latency as a Pseudo-permanent Network Partition - High Scalability -",
"url": "https://highscalability.com/think-of-latency-as-a-pseudo-permanent-network-partition/",
"datePublished": "2010-08-12T14:21:11.000Z",
"dateModified": "2024-02-02T12:48:08.000Z",
"keywords": "Strategy, CAP",
"description": "The title of this post is a quote from Ilya Grigorik's post Weak Consistency and CAP Implications. Besides the article being excellent, I thought this idea had something to add to the great NoSQL versus RDBMS debate, where Mike Stonebraker makes the argument that network partitions are rare so designing eventually consistent systems for such rare occurrence is not worth losing ACID semantics over. Even if network partitions are rare, latency between datacenters is not rare, so the game is still ",
"mainEntityOfPage": "https://highscalability.com/think-of-latency-as-a-pseudo-permanent-network-partition/"
}
</script>
<meta name="generator" content="Ghost 6.64">
<link rel="alternate" type="application/rss+xml" title="High Scalability" href="https://highscalability.com/rss/">
<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.71/umd/portal.min.js" data-i18n="true" data-ghost="https://highscalability.com/" data-key="e7388272b3fcb33a0abfc2f95c" data-api="https://high-scalability.ghost.io/ghost/api/content/" data-locale="en" crossorigin="anonymous"></script><style id="gh-members-styles">.gh-post-upgrade-cta-content,
.gh-post-upgrade-cta {
display: flex;
flex-direction: column;
align-items: center;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
text-align: center;
width: 100%;
color: #ffffff;
font-size: 16px;
}
.gh-post-upgrade-cta-content {
border-radius: 8px;
padding: 40px 4vw;
}
.gh-post-upgrade-cta h2 {
color: #ffffff;
font-size: 28px;
letter-spacing: -0.2px;
margin: 0;
padding: 0;
}
.gh-post-upgrade-cta p {
margin: 20px 0 0;
padding: 0;
}
.gh-post-upgrade-cta small {
font-size: 16px;
letter-spacing: -0.2px;
}
.gh-post-upgrade-cta a {
color: #ffffff;
cursor: pointer;
font-weight: 500;
box-shadow: none;
text-decoration: underline;
}
.gh-post-upgrade-cta a:hover {
color: #ffffff;
opacity: 0.8;
box-shadow: none;
text-decoration: underline;
}
.gh-post-upgrade-cta a.gh-btn {
display: block;
background: #ffffff;
text-decoration: none;
margin: 28px 0 0;
padding: 8px 18px;
border-radius: 4px;
font-size: 16px;
font-weight: 600;
}
.gh-post-upgrade-cta a.gh-btn:hover {
opacity: 0.92;
}</style>
<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js" data-key="e7388272b3fcb33a0abfc2f95c" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.css" data-sodo-search="https://high-scalability.ghost.io/" data-locale="en" crossorigin="anonymous"></script>
<link href="https://highscalability.com/webmentions/receive/" rel="webmention">
<script defer src="/public/cards.min.js?v=ShRHxgy4po8zN-Wf"></script>
<link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=WwnU9jw5ancNC8Gc">
<script defer src="/public/comment-counts.min.js?v=oFYkaGLdiMqB8VN9" data-ghost-comments-counts-api="https://highscalability.com/members/api/comments/counts/"></script>
<script defer src="/public/member-attribution.min.js?v=AKG4hWena9j3yX3I"></script>
<script defer src="/public/ghost-stats.min.js?v=vFcCUf6ZQ0Hyhc8h" data-stringify-payload="false" data-datasource="analytics_events" data-storage="localStorage" data-host="https://highscalability.com/.ghost/analytics/api/v1/page_hit" tb_site_uuid="647204cd-7ad2-4539-b98a-3489074b932d" tb_post_uuid="ac0b1d3c-be71-4acc-8b33-43be693b1320" tb_post_type="post" tb_member_uuid="undefined" tb_member_status="undefined" tb_gift_link=""></script><style>:root {--ghost-accent-color: #35cea0;}</style>
<!-- Fathom - beautiful, simple website analytics -->
<script src="https://cdn.usefathom.com/script.js" data-site="XBRJSZNU" defer></script>
<!-- / Fathom -->
<style>
/* Hide feature image on single post page in Source theme */
.post-template .gh-article-image {
display: none;
}
.gh-footer-copyright { display: none; }
</style>
</head>
<body class="post-template tag-strategy tag-cap tag-hash-sqs has-sans-title has-sans-body">
<div class="gh-viewport">
<header id="gh-navigation" class="gh-navigation is-middle-logo gh-outer">
<div class="gh-navigation-inner gh-inner">
<div class="gh-navigation-brand">
<a class="gh-navigation-logo is-title" href="https://highscalability.com">
High Scalability
</a>
<button class="gh-search gh-icon-button" aria-label="Search this site" data-ghost-search>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button> <button class="gh-burger gh-icon-button" aria-label="Menu">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M224,128a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16H216A8,8,0,0,1,224,128ZM40,72H216a8,8,0,0,0,0-16H40a8,8,0,0,0,0,16ZM216,184H40a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Z"></path></svg> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" viewBox="0 0 256 256"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"></path></svg> </button>
</div>
<nav class="gh-navigation-menu">
<ul class="nav">
<li class="nav-home"><a href="https://highscalability.com/">Home</a></li>
<li class="nav-system-design-interview-course"><a href="https://bit.ly/hishscalcourse">System Design Interview Course</a></li>
</ul>
</nav>
<div class="gh-navigation-actions">
<button class="gh-search gh-icon-button" aria-label="Search this site" data-ghost-search>
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button> <div class="gh-navigation-members">
<a href="#/portal/signin" data-portal="signin">Sign in</a>
<a class="gh-button" href="#/portal/signup" data-portal="signup">Subscribe</a>
</div>
</div>
</div>
</header>
<main class="gh-main">
<article class="gh-article post tag-strategy tag-cap tag-hash-sqs no-image">
<header class="gh-article-header gh-canvas">
<a class="gh-article-tag" href="https://highscalability.com/tag/strategy/">Strategy</a>
<h1 class="gh-article-title is-title">Think of Latency as a Pseudo-permanent Network Partition</h1>
<div class="gh-meta-share">
<div class="gh-article-meta">
<div class="gh-article-author-image instapaper_ignore">
<a href="/author/hs/">
<img class="author-profile-image" src="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w160/2024/03/hs.jpeg" alt="High Scalability">
</a>
</div>
<div class="gh-article-meta-wrapper">
<h4 class="gh-article-author-name"><a href="/author/hs/">High Scalability</a></h4>
<div class="gh-article-meta-content">
<time class="gh-article-meta-date" datetime="2010-08-12">12 Aug 2010</time>
<span class="gh-article-meta-length"><span class="bull">—</span> 2 min read</span>
</div>
</div>
</div>
<a href="#/share" class="gh-button gh-button-share">
Share
</a>
</div>
</header>
<section class="gh-content gh-canvas is-body">
<figure class="kg-card kg-image-card"><img src="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/2024/02/4831919243_4612be4d25_o.jpg" class="kg-image" alt loading="lazy"></figure><p>The title of this post is a quote from Ilya Grigorik's post <a href="http://www.igvita.com/2010/06/24/weak-consistency-and-cap-implications/?ref=highscalability.com">Weak Consistency and CAP Implications</a>. Besides the article being excellent, I thought this idea had something to add to the great NoSQL versus RDBMS debate, where <a href="https://highscalability.com/voltdb-decapitates-six-sql-urban-myths-and-delivers-internet/">Mike Stonebraker</a> makes the argument that network partitions are rare so designing eventually consistent systems for such rare occurrence is not worth losing ACID semantics over. Even if network partitions are rare, latency between datacenters is not rare, so the game is still on.</p><p>The rare-partition argument seems to flow from a centralized-distributed view of systems. Such systems are scale-out in that they grow by adding distributed nodes, but the nodes generally do not cross datacenter boundaries. The assumption is the network is fast enough that distributed operations are roughly homogenous between nodes.</p><p>In a fully-distributed system the nodes can be dispersed across datacenters, which gives operations a widely variable performance profile. Because everything talks over TCP/IP, communication between servers is exactly the same, but what changes are characteristics of the channel like latency, bandwidth, and reliability. What also changes are locations of resources like disk storage. A datacenter in Europe, for example, wants to store data locally rather than ship it synchronously across the pond to a US datacenter. Fully distributed systems are very complex because they must manage replication, availability, transactions, fail-over etc. in this very dynamic environment.</p><p>The notion is that latency is a kind of partition that requires eventual consistency to mask. The roundtrip time for a packet in a datacenter, for example, might be .5ms, and the roundtrip time from California to Europe back to California might be 150ms. So roughly 300 times more messages can be exchanged in a datacenter versus between datacenters. This implies that reads from different datacenters are unlikely to be consistent.</p><p>Imagine a write coursing down two network paths. The first path takes .5ms and the second takes 150ms. Without a strong consistency guarantee, as in a potentially performance/scaling/availability killing<a href="https://highscalability.com/paper-consensus-protocols-two-phase-commit/"> two-phase commit</a>, a read will be inconsistent for those latency windows. Ilya writes:</p><blockquote><a href="http://portal.acm.org/citation.cfm?id=1454167&ref=highscalability.com">PNUTS</a></blockquote><p>Does this mean geographically disperse systems by their very nature must be eventually consistent? It's at least interesting think about as we slowly make our way towards truly distributed architectures.</p><h2 id="related-articles">Related Articles</h2><ul><li><a href="https://highscalability.com/yahoos-pnuts-database-too-hot-too-cold-or-just-right/">Yahoo!'S PNUTS Database: Too Hot, Too Cold Or Just Right?</a></li><li><a href="http://mysqlha.blogspot.com/2010/04/consistency-across-wan.html?ref=highscalability.com">Consistency Across a WAN</a> by MARK CALLAGHAN. <em>There are three solutions for providing consistency in a data service that operates across a wide area network (WAN). None of them are free</em>.</li><li><a href="https://highscalability.com/wan-accelerate-your-way-to-lightening-fast-transfers-between/">WAN Accelerate Your Way To Lightening Fast Transfers Between Data Centers</a></li><li><a href="https://highscalability.com/numbers-everyone-should-know/">Numbers Everyone Should Know</a></li><li><a href="https://highscalability.com/latency-is-everywhere-and-it-costs-you-sales-how-to-crush-it/">Latency is Everywhere and it Costs You Sales - How to Crush it</a></li></ul>
</section>
</article>
<div class="gh-comments gh-canvas">
<script defer src="https://cdn.jsdelivr.net/ghost/comments-ui@~1.6/umd/comments-ui.min.js" data-locale="en" data-ghost-comments="https://highscalability.com/" data-api="https://high-scalability.ghost.io/ghost/api/content/" data-admin="https://high-scalability.ghost.io/ghost/" data-key="e7388272b3fcb33a0abfc2f95c" data-title="null" data-count="true" data-post-id="65bcea2b39539800016570ca" data-color-scheme="auto" data-avatar-saturation="60" data-accent-color="#35cea0" data-comments-enabled="all" data-publication="High Scalability" crossorigin="anonymous"></script>
</div>
</main>
<section class="gh-container is-grid gh-outer">
<div class="gh-container-inner gh-inner">
<h2 class="gh-container-title">Read more</h2>
<div class="gh-feed">
<article class="gh-card post">
<a class="gh-card-link" href="/untitled-2/">
<figure class="gh-card-image">
<img
srcset="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w160/format/webp/2024/05/pasted-image-0-2.png 160w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w320/format/webp/2024/05/pasted-image-0-2.png 320w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/format/webp/2024/05/pasted-image-0-2.png 600w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w960/format/webp/2024/05/pasted-image-0-2.png 960w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w1200/format/webp/2024/05/pasted-image-0-2.png 1200w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w2000/format/webp/2024/05/pasted-image-0-2.png 2000w"
sizes="320px"
src="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/2024/05/pasted-image-0-2.png"
alt="Kafka 101"
loading="lazy"
>
</figure>
<div class="gh-card-wrapper">
<h3 class="gh-card-title is-title">Kafka 101</h3>
<p class="gh-card-excerpt is-body">This is a guest article by Stanislav Kozlovski, an Apache Kafka Committer. If you would like to connect with Stanislav, you can do so on Twitter and LinkedIn.
Originally developed in LinkedIn during 2011, Apache Kafka is one of the most popular open-source Apache projects out there. So far</p>
<footer class="gh-card-meta">
<!--
-->
<span class="gh-card-author">By ByteByteGo</span>
<time class="gh-card-date" datetime="2024-05-09">09 May 2024</time>
<!--
--></footer>
</div>
</a>
</article>
<article class="gh-card post">
<a class="gh-card-link" href="/capturing-a-billion-emo-j-i-ons/">
<figure class="gh-card-image">
<img
srcset="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w160/format/webp/2024/03/1-rSRWALA4XzOdDcn-5vv7Zw.gif 160w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w320/format/webp/2024/03/1-rSRWALA4XzOdDcn-5vv7Zw.gif 320w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/format/webp/2024/03/1-rSRWALA4XzOdDcn-5vv7Zw.gif 600w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w960/format/webp/2024/03/1-rSRWALA4XzOdDcn-5vv7Zw.gif 960w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w1200/format/webp/2024/03/1-rSRWALA4XzOdDcn-5vv7Zw.gif 1200w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w2000/format/webp/2024/03/1-rSRWALA4XzOdDcn-5vv7Zw.gif 2000w"
sizes="320px"
src="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/2024/03/1-rSRWALA4XzOdDcn-5vv7Zw.gif"
alt="Capturing A Billion Emo(j)i-ons"
loading="lazy"
>
</figure>
<div class="gh-card-wrapper">
<h3 class="gh-card-title is-title">Capturing A Billion Emo(j)i-ons</h3>
<p class="gh-card-excerpt is-body">This blog post was written by Dedeepya Bonthu. This is a repost from her Medium article, approved by the author.
In stadiums, sports fans love to express themselves by cheering for their favorite teams, holding up placards and team logos. Emoji’s allow fans at home to rapidly express themselves,</p>
<footer class="gh-card-meta">
<!--
-->
<span class="gh-card-author">By ByteByteGo</span>
<time class="gh-card-date" datetime="2024-03-26">26 Mar 2024</time>
<!--
--></footer>
</div>
</a>
</article>
<article class="gh-card post">
<a class="gh-card-link" href="/brief-history-of-scaling-uber/">
<figure class="gh-card-image">
<img
srcset="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w160/format/webp/2026/03/1704993859593.png 160w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w320/format/webp/2026/03/1704993859593.png 320w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/format/webp/2026/03/1704993859593.png 600w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w960/format/webp/2026/03/1704993859593.png 960w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w1200/format/webp/2026/03/1704993859593.png 1200w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w2000/format/webp/2026/03/1704993859593.png 2000w"
sizes="320px"
src="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/2026/03/1704993859593.png"
alt="Brief History of Scaling Uber"
loading="lazy"
>
</figure>
<div class="gh-card-wrapper">
<h3 class="gh-card-title is-title">Brief History of Scaling Uber</h3>
<p class="gh-card-excerpt is-body">This blog post was written by Josh Clemm, Senior Director of Engineering at Uber Eats. This is a repost from his LinkedIn article, approved by the author.
On a cold evening in Paris in 2008, Travis Kalanick and Garrett Camp couldn&#39;t get a cab. That&#39;s when</p>
<footer class="gh-card-meta">
<!--
-->
<span class="gh-card-author">By ByteByteGo</span>
<time class="gh-card-date" datetime="2024-03-14">14 Mar 2024</time>
<!--
--></footer>
</div>
</a>
</article>
<article class="gh-card post">
<a class="gh-card-link" href="/behind-aws-s3s-massive-scale/">
<figure class="gh-card-image">
<img
srcset="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w160/format/webp/2024/03/7.png 160w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w320/format/webp/2024/03/7.png 320w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/format/webp/2024/03/7.png 600w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w960/format/webp/2024/03/7.png 960w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w1200/format/webp/2024/03/7.png 1200w,
https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w2000/format/webp/2024/03/7.png 2000w"
sizes="320px"
src="https://storage.ghost.io/c/64/72/647204cd-7ad2-4539-b98a-3489074b932d/content/images/size/w600/2024/03/7.png"
alt="Behind AWS S3’s Massive Scale"
loading="lazy"
>
</figure>
<div class="gh-card-wrapper">
<h3 class="gh-card-title is-title">Behind AWS S3’s Massive Scale</h3>
<p class="gh-card-excerpt is-body">This is a guest article by Stanislav Kozlovski, an Apache Kafka Committer. If you would like to connect with Stanislav, you can do so on Twitter and LinkedIn.
AWS S3 is a service every engineer is familiar with.
It’s the service that popularized the notion of cold-storage to</p>
<footer class="gh-card-meta">
<!--
-->
<span class="gh-card-author">By ByteByteGo</span>
<time class="gh-card-date" datetime="2024-03-06">06 Mar 2024</time>
<!--
--></footer>
</div>
</a>
</article>
</div>
</div>
</section>
<footer class="gh-footer gh-outer">
<div class="gh-footer-inner gh-inner">
<section class="gh-footer-signup">
<h2 class="gh-footer-signup-header is-title">
High Scalability
</h2>
<p class="gh-footer-signup-subhead is-body">
Building bigger, faster, more reliable websites.
</p>
<form class="gh-form" data-members-form>
<input class="gh-form-input" id="footer-email" name="email" type="email" placeholder="jamie@example.com" required data-members-email>
<button class="gh-button" type="submit" aria-label="Subscribe">
<span><span>Subscribe</span> <svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor" viewBox="0 0 256 256"><path d="M224.49,136.49l-72,72a12,12,0,0,1-17-17L187,140H40a12,12,0,0,1,0-24H187L135.51,64.48a12,12,0,0,1,17-17l72,72A12,12,0,0,1,224.49,136.49Z"></path></svg></span>
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 24 24">
<g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
<g class="nc-loop-dots-4-24-icon-o">
<circle cx="4" cy="12" r="3"></circle>
<circle cx="12" cy="12" r="3"></circle>
<circle cx="20" cy="12" r="3"></circle>
</g>
<style data-cap="butt">
.nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
.nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
.nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
.nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
.nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
@keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
</style>
</g>
</svg> <span>Email sent</span>
</button>
<p data-members-error></p>
</form>
</section>
<div class="gh-social-links">
<a href="https://x.com/ghost" target="_blank" rel="noopener" aria-label="X">
<svg viewBox="0 0 24 24" fill="currentColor"><g><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></g></svg> </a>
<a href="https://www.facebook.com/ghost" target="_blank" rel="noopener" aria-label="Facebook">
<svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" fill="currentColor"><path d="M23.9981 11.9991C23.9981 5.37216 18.626 0 11.9991 0C5.37216 0 0 5.37216 0 11.9991C0 17.9882 4.38789 22.9522 10.1242 23.8524V15.4676H7.07758V11.9991H10.1242V9.35553C10.1242 6.34826 11.9156 4.68714 14.6564 4.68714C15.9692 4.68714 17.3424 4.92149 17.3424 4.92149V7.87439H15.8294C14.3388 7.87439 13.8739 8.79933 13.8739 9.74824V11.9991H17.2018L16.6698 15.4676H13.8739V23.8524C19.6103 22.9522 23.9981 17.9882 23.9981 11.9991Z"/></svg> </a>
</div>
<div class="gh-footer-bar">
<span class="gh-footer-logo is-title">
High Scalability
</span>
<nav class="gh-footer-menu">
<ul class="nav">
<li class="nav-sign-up"><a href="#/portal/">Sign up</a></li>
</ul>
</nav>
<div class="gh-footer-copyright">
Powered by <a href="https://ghost.org/" target="_blank" rel="noopener">Ghost</a>
</div>
</div>
</div>
</footer>
</div>
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
<div class="pswp__bg"></div>
<div class="pswp__scroll-wrap">
<div class="pswp__container">
<div class="pswp__item"></div>
<div class="pswp__item"></div>
<div class="pswp__item"></div>
</div>
<div class="pswp__ui pswp__ui--hidden">
<div class="pswp__top-bar">
<div class="pswp__counter"></div>
<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
<button class="pswp__button pswp__button--share" title="Share"></button>
<button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
<button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
<div class="pswp__preloader">
<div class="pswp__preloader__icn">
<div class="pswp__preloader__cut">
<div class="pswp__preloader__donut"></div>
</div>
</div>
</div>
</div>
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
<div class="pswp__share-tooltip"></div>
</div>
<button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
<button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
<div class="pswp__caption">
<div class="pswp__caption__center"></div>
</div>
</div>
</div>
</div>
<script src="https://highscalability.com/assets/built/source.js?v=uMULaSMoSjM4gY5C"></script>
</body>
</html>