<?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: Tech In Public</title>
    <description>The latest articles on DEV Community by Tech In Public (@forged_7a00f66cff1865ad40).</description>
    <link>https://dev.to/forged_7a00f66cff1865ad40</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%2F4108029%2F7b19901e-3bd8-4d49-a285-79ede6e1391b.png</url>
      <title>DEV Community: Tech In Public</title>
      <link>https://dev.to/forged_7a00f66cff1865ad40</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/forged_7a00f66cff1865ad40"/>
    <language>en</language>
    <item>
      <title>Why DNS Had to Exist: The Directory Problem Explained From First Principles</title>
      <dc:creator>Tech In Public</dc:creator>
      <pubDate>Sun, 13 Sep 2026 18:19:16 +0000</pubDate>
      <link>https://dev.to/forged_7a00f66cff1865ad40/why-dns-had-to-exist-the-directory-problem-explained-from-first-principles-30bl</link>
      <guid>https://dev.to/forged_7a00f66cff1865ad40/why-dns-had-to-exist-the-directory-problem-explained-from-first-principles-30bl</guid>
      <description>&lt;h2&gt;
  
  
  The Directory Problem: Why DNS Was Inevitable
&lt;/h2&gt;

&lt;p&gt;Software Laws from First Principles — Investigation 009. This picks up directly from &lt;a href="https://techinpublic.blogspot.com/2026/09/identity-vs-location-networking.html" rel="noopener noreferrer"&gt;Identity ≠ Location &lt;/a&gt;— read that first if you haven't.&lt;/p&gt;

&lt;p&gt;A person moves to a new home while a neighborhood directory keeps track of their current location.&lt;br&gt;
A person moves to a new home while a neighborhood directory keeps track of their current location.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The moment identities stay stable but locations keep changing, some kind of directory becomes unavoidable — a thing whose only job is to keep the mapping between the two up to date.&lt;/strong&gt; That's why DNS exists. Not because engineers liked adding components, but because the problem forces it. Here's why DNS had to exist, built from first principles instead of memorized.&lt;/p&gt;
&lt;h3&gt;
  
  
  Start with a city, not a computer
&lt;/h3&gt;

&lt;p&gt;You're running a city. People move houses every month. Businesses relocate. Hospitals expand into new buildings. Schools change campuses. Nothing about who these people and places are has changed — only where they are.&lt;/p&gt;

&lt;p&gt;Now try to run that city with only one kind of information.&lt;/p&gt;

&lt;p&gt;If everyone only knew street addresses, what happens the moment someone moves? Every person who wanted to reach them is now holding a dead address. You'd have to personally notify the entire city every time you changed apartments. Absurd.&lt;/p&gt;

&lt;p&gt;Flip it. If everyone only knew names — no addresses at all — how do you deliver a package? You know exactly who it's for and have no idea where to take it.&lt;/p&gt;

&lt;p&gt;Neither extreme works. Identity alone can't route anything. Location alone breaks the instant something moves. The city is stuck.&lt;/p&gt;
&lt;h3&gt;
  
  
  The thing that has to exist in the middle
&lt;/h3&gt;

&lt;p&gt;There's only one way out, and you can derive it without ever hearing the word "DNS." You need a third thing: a system whose entire job is to answer one question — "this identity, where is it right now?" — and to stay current as locations change.&lt;/p&gt;

&lt;p&gt;That's a directory.&lt;/p&gt;

&lt;p&gt;Diagram showing a stable identity connected through a directory to a changing current location.&lt;br&gt;
Diagram showing a stable identity connected through a directory to a changing current location.&lt;/p&gt;

&lt;p&gt;It sits between the stable identity and the shifting location and keeps the mapping fresh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Identity  →  [ Directory ]  →  Location
  (stable)     (keeps it       (changes)
                current)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The people holding identities never have to know about moves. They ask the directory. The directory is the only thing that has to be updated when something relocates — and updating one directory is infinitely cheaper than notifying everyone.&lt;/p&gt;

&lt;h3&gt;
  
  
  You've met this directory a hundred times
&lt;/h3&gt;

&lt;p&gt;Once you see the shape, it's everywhere:&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;phone book&lt;/strong&gt; maps names to numbers. When someone changes their number, the book updates — not every person who ever knew them.&lt;/p&gt;

&lt;p&gt;Your &lt;strong&gt;phone's contacts&lt;/strong&gt; are a personal directory. "Mom" stays "Mom"; the number behind her can change and you only fix it in one place.&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;company directory&lt;/strong&gt; maps employee names to desks, offices, extensions. People move desks constantly; the directory absorbs the churn.&lt;/p&gt;

&lt;p&gt;Every one of these exists for the same reason: identities are stable, locations aren't, and something has to hold the mapping.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why DNS is exactly this — for the internet
&lt;/h3&gt;

&lt;p&gt;You type "google.com". That's an identity — it doesn't change. But the machine you actually need to reach lives at an IP address like 142.250.x.x , and that can change: servers move, scale, get replaced.&lt;/p&gt;

&lt;p&gt;If your browser had to memorize the IP, every server change on earth would break every user pointing at it. So the internet does the city's only sane move — it puts a directory in the middle. DNS takes the stable identity (google.com) and returns its current location (the IP), and stays updated when that location changes. You never touch the IP. You ask the directory.&lt;/p&gt;

&lt;p&gt;DNS isn't a clever add-on. It's the inevitable consequence of identity ≠ location at internet scale.&lt;/p&gt;

&lt;h3&gt;
  
  
  The same pattern, one layer down and one layer up
&lt;/h3&gt;

&lt;p&gt;The directory pattern isn't unique to DNS — it reappears wherever identity and location split:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;ARP maps&lt;/strong&gt; a device's stable network identity to its current hardware address on the local network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Service discovery&lt;/strong&gt; in distributed systems maps a service's name to wherever its instances currently live.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Kubernetes Services&lt;/strong&gt; and &lt;strong&gt;load balancers&lt;/strong&gt; hold a stable front while the actual pods and servers behind them churn.&lt;br&gt;
Different names, different layers, identical job: keep the mapping current so identities never have to care where anything moved.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The takeaway
&lt;/h3&gt;

&lt;p&gt;You don't memorize DNS. You realize it had no choice but to exist. The instant a system has stable identities and changing locations — which is nearly every real system — a directory becomes inevitable, because the only alternatives are "notify everyone on every move" or "know who but never where." Both collapse.&lt;/p&gt;

&lt;p&gt;That's the whole trick to understanding infrastructure: don't ask what a component does, ask what problem made it unavoidable.&lt;/p&gt;

&lt;p&gt;Next in the series: the four responses every overloaded system has — and why there is no fifth. [Coming soon.]&lt;/p&gt;

&lt;h3&gt;
  
  
  FAQ
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Why does DNS exist?&lt;/strong&gt; Because website identities (like google.com) stay stable while their locations (IP addresses) change. DNS is the directory that maps the stable identity to the current location, so users never have to track the moving IP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What problem does DNS actually solve?&lt;/strong&gt; The directory problem: when identities stay put but locations change, something must hold and update the mapping between them. Without it, every location change would break everyone trying to reach that identity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's the difference between DNS and ARP?&lt;/strong&gt; Both are directories, at different layers. DNS maps a domain name to an IP address. ARP maps an IP address to a device's physical hardware address on the local network. Same pattern — identity to current location — different scope.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is service discovery the same idea as DNS?&lt;/strong&gt; Conceptually, yes. Service discovery maps a service's stable name to wherever its running instances currently are, exactly as DNS maps a domain to a current IP. Both are directories solving identity vs location.&lt;/p&gt;

&lt;p&gt;Part of the series Previous: &lt;a href="https://techinpublic.blogspot.com/2026/09/identity-vs-location-networking.html" rel="noopener noreferrer"&gt;Identity ≠ Location.&lt;/a&gt;&lt;/p&gt;

</description>
      <category>distributedsystems</category>
      <category>dns</category>
      <category>firstprinciples</category>
      <category>networking</category>
    </item>
    <item>
      <title>Identity vs Location in Networking (Explained From First Principles)</title>
      <dc:creator>Tech In Public</dc:creator>
      <pubDate>Mon, 07 Sep 2026 08:39:52 +0000</pubDate>
      <link>https://dev.to/forged_7a00f66cff1865ad40/identity-vs-location-in-networking-explained-from-first-principles-2iol</link>
      <guid>https://dev.to/forged_7a00f66cff1865ad40/identity-vs-location-in-networking-explained-from-first-principles-2iol</guid>
      <description>&lt;h2&gt;
  
  
  Identity ≠ Location: The Software Idea That Explains DNS, Kubernetes, and Your Phone Contacts
&lt;/h2&gt;

&lt;p&gt;Software Laws from First Principles — Law 13. New here? Start with the series intro: &lt;a href="https://techinpublic.blogspot.com/2026/08/invent-the-internet-from-scratch.html" rel="noopener noreferrer"&gt;I Tried to Invent the Internet From Scratch Before Learning How It Works.&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Identity answers “who are you?” Location answers “where can I reach you right now?”&lt;/strong&gt; These are two different pieces of information, and almost every hard problem in networking, databases, and distributed systems comes from accidentally treating them as one. Here’s the distinction between identity vs location, discovered from first principles — including where I got it wrong.&lt;/p&gt;
&lt;h2&gt;
  
  
  The mistake I made (and you probably will too)
&lt;/h2&gt;

&lt;p&gt;I was working through this with a set of examples: passport, GPS coordinate, house address, SIM card, email address. The task: sort each into identity or location.&lt;/p&gt;

&lt;p&gt;I confidently put SIM card → both and email → both.&lt;/p&gt;

&lt;p&gt;That felt right. It was wrong — and being wrong is the whole lesson. Let me walk it the way it actually unfolded.&lt;/p&gt;
&lt;h2&gt;
  
  
  Start with a person who moves
&lt;/h2&gt;

&lt;p&gt;A person moves from Mumbai to Delhi. Does their identity change, or only their location?&lt;/p&gt;

&lt;p&gt;Only location. The identity defines them — it’s unique and it stays. The location is temporary and can even be shared. That’s the first principle, and everything else is just testing it.&lt;/p&gt;
&lt;h2&gt;
  
  
  Testing the examples: which are identity, which are location
&lt;/h2&gt;

&lt;p&gt;Passport → identity. Fly from India to Japan. Does your passport change? No. It says who you are, not where you are.&lt;/p&gt;

&lt;p&gt;GPS coordinate → location. Can two people stand at the exact same coordinate? Yes. If two things can share it, it can’t identify one of them. Location.&lt;/p&gt;

&lt;p&gt;House address → location. Feels like identity, but: move house, and the address changes while you didn’t. And five people in one house share it. Shared + changeable = location.&lt;/p&gt;

&lt;p&gt;SIM card → here’s where I was wrong. I said “both.” Test it: take the SIM out and put it in another phone — did the SIM’s identity change? No. Travel Pune to Delhi — did it change? No. The SIM keeps one stable identity; only its relationship to a phone and its location move around it. The SIM is identity. What I’d mistaken for “location” was the mapping sitting next to it.&lt;/p&gt;

&lt;p&gt;That mistake — seeing a stable identity tangled up with a changing mapping and calling the whole thing “both” — is exactly the mistake the software industry made for decades.&lt;/p&gt;
&lt;h2&gt;
  
  
  The hotel analogy that makes identity vs location click
&lt;/h2&gt;

&lt;p&gt;You walk into a hotel and say: “I’d like to meet Rocky.”&lt;/p&gt;

&lt;p&gt;Reception doesn’t ask “what’s his GPS coordinate?” They ask “which room is he in?”&lt;/p&gt;

&lt;p&gt;Rocky stayed Rocky. Only the room changed. The hotel keeps a mapping:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Rocky  →  Room 402
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That mapping can change all day. Rocky doesn’t.&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern: identity, mapping, location
&lt;/h2&gt;

&lt;p&gt;Whenever identity and location are different, you need a third thing between them:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Identity
   ↓
Mapping
   ↓
Location
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You see it everywhere once you have the lens:&lt;/p&gt;

&lt;p&gt;Phone contacts: “Mom” is identity. Mom → +91… is the mapping. Her number changes; you update the mapping. You don’t rename her to “New Number.”&lt;/p&gt;

&lt;p&gt;Google Maps: it says “drive to Pune Railway Station,” not “drive to latitude 18.52…”. Name (identity) → coordinates (location), via a mapping.&lt;/p&gt;

&lt;p&gt;A company: Employee ID is identity. Desk number is location. The desk changes; the ID shouldn’t.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why DNS exists: identity vs location on the internet
&lt;/h2&gt;

&lt;p&gt;You type “google.com” — that’s an identity. The network resolves it to something like 142.250.x.x — that’s a location. The thing doing the resolving (DNS) is the mapping. It exists only because identity and location are different.&lt;/p&gt;

&lt;p&gt;And Kubernetes: Pods come and go, their IPs change constantly. If clients depended on those changing IPs, everything would break every minute. So Kubernetes adds a stable thing in front — a Service — that holds a steady identity while the Pod locations churn behind it. Same hotel. Same mapping. You just discovered a core Kubernetes idea without touching Kubernetes&lt;/p&gt;

&lt;h2&gt;
  
  
  The takeaway: why separating identity and location matters
&lt;/h2&gt;

&lt;p&gt;When identities stay stable but locations change, a directory becomes inevitable — something whose entire job is to keep the mapping current. That’s DNS, ARP, service discovery, load balancers, and your phone’s contact list, all at once.&lt;/p&gt;

&lt;p&gt;Confuse identity with location and you get systems that break the moment something moves. Separate them, put a mapping in the middle, and things are free to move without anything breaking.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;What’s the difference between identity and location in networking?&lt;/strong&gt;&lt;br&gt;
Identity is who/what something is and stays stable (a domain name, a username, an employee ID). Location is where to reach it right now and can change (an IP address, a desk, a GPS coordinate). A mapping or directory connects the two.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is an IP address identity or location?&lt;/strong&gt;&lt;br&gt;
Location. An IP tells you where to reach a machine on the network right now; it can change when the machine moves or restarts. The stable identity is usually a name (like a domain) that resolves to an IP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does Kubernetes need Services?&lt;/strong&gt;&lt;br&gt;
Because Pod IPs (locations) change constantly, but clients need a stable identity to talk to. A Service is the stable identity in front of the shifting Pod locations — the mapping in the middle.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is a domain name identity or location&lt;/strong&gt;?&lt;br&gt;
Identity. “google.com” stays the same while the IP address it points to can change. DNS is the mapping that turns the identity into a current location.&lt;/p&gt;

</description>
      <category>dns</category>
      <category>networking</category>
      <category>firstprinciple</category>
      <category>softwarelaws</category>
    </item>
    <item>
      <title>I Tried to Invent the Internet From Scratch Before Learning How It Works</title>
      <dc:creator>Tech In Public</dc:creator>
      <pubDate>Thu, 03 Sep 2026 12:59:38 +0000</pubDate>
      <link>https://dev.to/forged_7a00f66cff1865ad40/i-tried-to-invent-the-internet-from-scratch-before-learning-how-it-works-pe9</link>
      <guid>https://dev.to/forged_7a00f66cff1865ad40/i-tried-to-invent-the-internet-from-scratch-before-learning-how-it-works-pe9</guid>
      <description>&lt;p&gt;Software Laws from First Principles — the story behind the series&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%2Fplns9xyj6l6ma1z74ty3.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%2Fplns9xyj6l6ma1z74ty3.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
The thought experiment: rebuilding communication from first principles, one constraint at a time.&lt;/p&gt;

&lt;p&gt;I did something backwards. Instead of opening a networking course and memorizing what TCP and IP and DNS are.&lt;br&gt;
I started my thought experiment in the year 1800 — before any of it existed — and tried to invent the internet myself, one forced decision at a time. Every time I proposed a solution, it broke under the next problem. And every time it broke, I was accidentally rediscovering an idea that real engineers spent decades arriving at.&lt;/p&gt;

&lt;p&gt;This post is the map of that journey. It's also the premise of everything else I'm writing: &lt;strong&gt;I don't want to learn what humanity invented. I want to put myself in the position where the invention becomes inevitable — and then compare my version to the real one.&lt;/strong&gt; That's the whole series.&lt;/p&gt;

&lt;p&gt;Here's how it went, mistakes included.&lt;/p&gt;

&lt;h3&gt;
  
  
  It didn't start with computers. It started with distance.
&lt;/h3&gt;

&lt;p&gt;Strip away all the technology and communication is just this: someone has information, someone else needs it, and something in between has to carry it. Smoke signals, letters, telephones, WhatsApp — same system, different transport. The enemy was never "not having a phone." The enemy was distance, and everything after is a fight against the delay distance creates.&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%2Fjyad19dvpdgc0fubpe8x.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%2Fjyad19dvpdgc0fubpe8x.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Communication begins with a simple problem: getting information across distance.&lt;/p&gt;

&lt;p&gt;So I started with nothing. A messenger on a horse. Information moves only as fast as a physical object. Then the telegraph arrives and, for the first time in history, humans separate the message from the messenger — the information moves without a physical thing carrying it the whole way. That separation turns out to be one of the biggest moves in the entire story, and it keeps coming back.&lt;/p&gt;

&lt;h3&gt;
  
  
  Then I had to connect more than two computers — and it fell apart fast
&lt;/h3&gt;

&lt;p&gt;Two computers, one wire. Fine. Then a third, a fourth, a thousand. I got asked a deceptively simple question: to connect 1,000 computers so each can reach every other, how many wires do you need? I didn't calculate it — I just felt it. It explodes. It doesn't scale.&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%2F1m0hy6ihi063oipt84j6.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%2F1m0hy6ihi063oipt84j6.png" alt=" " width="800" height="375"&gt;&lt;/a&gt;&lt;br&gt;
Connecting more machines makes the network harder to scale—and exposes the limits of direct connections.&lt;/p&gt;

&lt;p&gt;So I proposed a central hub. Everything routes through one machine. Clean. And immediately I'd walked into my first trap: &lt;strong&gt;the single point of failure.&lt;/strong&gt; Destroy the hub and the entire network dies. A king, a CEO, a database, a data center — great architects fear the thing that takes everything down when it falls.&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%2F2u4c635ixbz2u3ucwq9o.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%2F2u4c635ixbz2u3ucwq9o.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
A centralized network is simple to build, but one failed hub can bring everything down.&lt;/p&gt;

&lt;p&gt;That fear is exactly what drove the real design. The Cold War military didn't ask "how do we connect computers?" They asked "if a city is destroyed, should the network survive?" The old telephone system said no. The answer had to be yes. That single requirement bent the entire architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I started sounding like a government (and why that was a problem)
&lt;/h2&gt;

&lt;p&gt;I noticed my own instinct. Every time a problem appeared, I invented a master — a controller, a manager, a central registry that knows everything. That's how governments and corporations organize. So the guide kept attacking it: who manages the master? Who manages the backup of the master? How many updates per second can one master process before it becomes the bottleneck?&lt;/p&gt;

&lt;p&gt;That's when the real shift happened. I stopped asking "who should be in charge of this?" and started asking "can this organize itself?" Ant colonies work and no ant knows the whole colony. Traffic, markets, languages — none has a central controller, and they all function. I moved from &lt;strong&gt;central control to local rules&lt;/strong&gt;, and it turns out that's one of the biggest mindset changes in all of software architecture: local knowledge scales better than global knowledge.&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%2Fy6m1du3x3tumn6lzfew9.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%2Fy6m1du3x3tumn6lzfew9.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
Removing the single point of failure means allowing the network to route around problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  The mistakes I made along the way (these are the good part)
&lt;/h3&gt;

&lt;p&gt;I want to keep these in, because the polished version of this story would hide them and the polished version is worthless.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;I assumed the &lt;strong&gt;bottleneck is always the medium&lt;/strong&gt; — the wire, the road, the transport. Wrong. The sender can be the bottleneck. So can the receiver, the storage, the trust, the cost. Most technology isn't solving a transport problem at all.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I kept &lt;strong&gt;adding metadata&lt;/strong&gt; to every message — address, order, status, security, retries, checks — until the guide asked: should a two-character message carry the same baggage as a 1GB file? At some point the information about the message gets bigger than the message. Every solution creates new information that itself has to be managed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I tried to build a &lt;strong&gt;master that knows everything&lt;/strong&gt;, repeatedly, before finally accepting no such machine can exist at scale.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&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%2Ftokten0r3hwg5hojbdro.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%2Ftokten0r3hwg5hojbdro.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each wrong answer wasn't a failure. It was the exact wrong turn the industry itself took before correcting. Making the mistake is how you understand why the correction mattered.&lt;/p&gt;

&lt;h3&gt;
  
  
  The moment it stopped being about wires
&lt;/h3&gt;

&lt;p&gt;Late in the journey the guide asked what I was really building — a network, or something else. And the answer that came out was: &lt;strong&gt;a set of rules that lets strangers communicate&lt;/strong&gt;. Not wires. Rules.&lt;/p&gt;

&lt;p&gt;That reframed everything. The real invention wasn't the internet. It was the agreement — the protocol — that lets independent systems that know nothing about each other still cooperate.&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%2Fwzr0ibbx5eelxlyd50pf.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%2Fwzr0ibbx5eelxlyd50pf.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The machines can be independent; the rules are what allow them to communicate.&lt;/p&gt;

&lt;p&gt;That's the idea behind internetworking: independent networks connected by a common set of protocols.&lt;/p&gt;

&lt;p&gt;The rules matter more than the machines.&lt;/p&gt;

&lt;p&gt;And rules, it turns out, are what survive. The internet isn't wires; it's protocols. React isn't components; it's principles about UI. Docker isn't containers; it's a principle about packaging environments. The implementation dies. The contract lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  The laws I walked out with
&lt;/h2&gt;

&lt;p&gt;By the end I hadn't memorized networking. I'd collected a set of engineering laws that keep reappearing far outside networking — in databases, cloud, React, Kubernetes, even in how companies are structured:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;*&lt;em&gt;Purpose before mechanism *&lt;/em&gt;— ask why it exists before how it works.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Constraints create innovation&lt;/strong&gt; — no constraint, no invention.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Every solution is a tradeoff&lt;/strong&gt; — there's no perfect architecture, only chosen pains.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Shared resources beat dedicated ones&lt;/strong&gt; when demand is intermittent (this is why we share roads, CPUs, and cloud servers instead of building private ones per user).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;-** Local knowledge scales better than global knowledge.**&lt;br&gt;
Overload has only four responses: wait, distribute, add capacity, or reduce demand. There is no fifth.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Bottlenecks move; they don't disappear&lt;/strong&gt;. Solve one and it reappears somewhere else.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Every responsibility has a natural home&lt;/strong&gt; — a system should do only what only it can do.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Communication is transferring a mental model, not words&lt;/strong&gt; — meaning comes from shared reality, not vocabulary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Isolate what changes fast from what changes slowly — this is why layers exist.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stable contracts enable independent evolution&lt;/strong&gt; — protect the agreement, not the implementation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Identity ≠ Location&lt;/strong&gt; — who you are and where to reach you are two different things, and confusing them breaks systems the moment anything moves.&lt;br&gt;
Each of those is its own post in this series. This is the map; the rest are the territory.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why I'm doing it this way
&lt;/h2&gt;

&lt;p&gt;Most people learn technology by accepting the invention. I'm questioning the necessity of the invention. When you can see the problem before the solution, the technology stops being something to memorize and becomes something you'd have built yourself.&lt;/p&gt;

&lt;p&gt;The catch — and I'll be honest about it — is that all of this stays theoretical unless it ends in something real. So every cycle of this series ends with building, publishing, or shipping. Understanding without building is just a more sophisticated way of collecting tools.&lt;/p&gt;

&lt;p&gt;Next in the series: Identity ≠ Location — the distinction I got wrong at first, and the reason DNS, Kubernetes Services, and your phone's contact list all quietly work the same way.&lt;/p&gt;

&lt;h3&gt;
  
  
  #programming, #architecture, #webdev, #learning, #AiImage
&lt;/h3&gt;

</description>
      <category>computerscience</category>
      <category>learning</category>
      <category>networking</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
