
Echoes
Past infrastructure decisions echoing in today's production realities
Echoes
Past infrastructure decisions echoing in today's production realities

When HTML Forked: The Compromise That Never Ended

In February 1996, the HTML Editorial Review Board struck a deal: Netscape would remove blink tag from the specification if Microsoft removed marquee tag. Both companies agreed. Browsers kept supporting them anyway.
The negotiation revealed something structural. Between 1991 and 1996, HTML had forked into two incompatible paradigms—markup that describes what content is versus markup that controls how it looks. The compromise became permanent. Today, when you extract data across thousands of sites at scale, you're not just parsing HTML. You're interpreting two design philosophies that were never reconciled.
When HTML Forked: The Compromise That Never Ended
In February 1996, the HTML Editorial Review Board struck a deal: Netscape would remove blink tag from the specification if Microsoft removed marquee tag. Both companies agreed. Browsers kept supporting them anyway.
The negotiation revealed something structural. Between 1991 and 1996, HTML had forked into two incompatible paradigms—markup that describes what content is versus markup that controls how it looks. The compromise became permanent. Today, when you extract data across thousands of sites at scale, you're not just parsing HTML. You're interpreting two design philosophies that were never reconciled.

Nora Kaplan
Nora Kaplan, former collaboration platform product leader turned technology writer. Studied human-computer interaction and spent years designing tools for knowledge work. Now writes about AI agents, work transformation, and how enterprise software reshapes human capability at TinyFish.
One Echo This Week
December 2011: RFC 6455 standardized WebSocket. Developers celebrated real-time communication without polling hacks. Infrastructure teams got a problem that still hasn't resolved.
HTTP assumed connections die fast. Single request, single response, close the socket. Every layer of the network stack optimized for this: firewalls tracked brief sessions, load balancers expected quick turnover, proxies aggressively timed out idle connections.
WebSocket flipped it. Now servers hold thousands of connections open indefinitely. Firewalls don't recognize the traffic pattern. Proxies kill sessions they think are stalled. Memory pools sized for transient requests exhaust under persistent load.
Fourteen years later, HTTP polling remains more common than WebSocket across the top million sites. The infrastructure never caught up. When you choose between polling and persistent connections today, you're navigating consequences of that 2011 inversion.
December 2011: RFC 6455 standardized WebSocket. Developers celebrated real-time communication without polling hacks. Infrastructure teams got a problem that still hasn't resolved.
HTTP assumed connections die fast. Single request, single response, close the socket. Every layer of the network stack optimized for this: firewalls tracked brief sessions, load balancers expected quick turnover, proxies aggressively timed out idle connections.
WebSocket flipped it. Now servers hold thousands of connections open indefinitely. Firewalls don't recognize the traffic pattern. Proxies kill sessions they think are stalled. Memory pools sized for transient requests exhaust under persistent load.
Fourteen years later, HTTP polling remains more common than WebSocket across the top million sites. The infrastructure never caught up. When you choose between polling and persistent connections today, you're navigating consequences of that 2011 inversion.
HTTP 1.0 explicitly designed for minimal TCP lifespan, with entire network stack optimized around brief request-response cycles and rapid connection recycling.
Firewalls and proxies built for transient sessions struggle with persistent WebSocket connections, causing unexpected timeouts and socket exhaustion at scale.
Analysis of top million websites shows HTTP polling remains dominant, with WebSocket growth plateauing despite protocol maturity and developer preference.
Many production firewalls and proxies still lack proper WebSocket support, creating reliability gaps that force teams toward older polling patterns.
Long-lived session protocols (WebSocket, SSE, HTTP/2 push) share operational challenges because short-connection assumptions remain embedded throughout network infrastructure.
Patterns Repeating Right Now
Infrastructure doesn't evolve randomly. It follows patterns that repeat across decades, visible in every technology transition if you know where to look.
The web you're building on today carries weight. Countless architectural decisions, each creating ripples that reach your production systems right now. Understanding these patterns changes what you build next.
These six patterns show up everywhere: in your Kubernetes clusters, your cloud bills, your hiring struggles, your architecture debates. They're not historical curiosities. They're the infrastructure reality you're navigating today, echoing decisions made long before your systems existed.
Infrastructure doesn't evolve randomly. It follows patterns that repeat across decades, visible in every technology transition if you know where to look.
The web you're building on today carries weight. Countless architectural decisions, each creating ripples that reach your production systems right now. Understanding these patterns changes what you build next.
These six patterns show up everywhere: in your Kubernetes clusters, your cloud bills, your hiring struggles, your architecture debates. They're not historical curiosities. They're the infrastructure reality you're navigating today, echoing decisions made long before your systems existed.
Papers That Built Infrastructure
CAP Theorem Proved the Impossible Triangle
Every eventual consistency decision in modern architecture accepts this proven impossibility as fundamental constraint.
NoSQL databases exist because CAP forced architects to choose availability over immediate consistency at scale.
Papers That Built Infrastructure
Fielding's Dissertation Documented the Web's Hidden Architecture
The web scaled because of architectural constraints, and Fielding showed us which constraints actually mattered.
Every RESTful API inherits decisions made for browsers, whether those decisions fit the problem or not.
Papers That Built Infrastructure
MapReduce Made Distributed Processing Accessible
Google was running 100,000 MapReduce jobs daily when they published production lessons, not theory.
Hadoop adopted these patterns wholesale, shaping how an entire generation processes large-scale data today.
Papers That Built Infrastructure
Bigtable Showed How to Store Petabytes
Flexible schema design could scale to petabytes while serving both analytics and production traffic simultaneously.
HBase, Cassandra, and Cloud Bigtable all trace their lineage directly to patterns documented here.
Today's Debates Yesterday's Decisions


