Gunjan Sharma

System Design

The default state of every information system is absolute disorder

ยท Updated

A Principal Architect once told me during a post-mortem review:

"The Second Law of Thermodynamics doesn't stop at your software stack. The default state of every information system is absolute disorder."

We like to pretend we build clean, deterministic software. In reality, we are forcing ๐—น๐—ผ๐—ฐ๐—ฎ๐—น ๐—ผ๐—ฟ๐—ฑ๐—ฒ๐—ฟ on a universe that naturally gravitates toward entropy, state corruption, and failure.

Here is the deep architectural reality of system designโ€”and why solving one Non-Functional Requirement (NFR) always creates new emergent chaos:

๐Ÿญ. ๐—ง๐—ต๐—ฒ ๐—™๐—ฎ๐—น๐—น๐—ฎ๐—ฐ๐˜† ๐—ผ๐—ณ ๐—ฆ๐˜†๐˜€๐˜๐—ฒ๐—บ ๐—˜๐—พ๐˜‚๐—ถ๐—น๐—ถ๐—ฏ๐—ฟ๐—ถ๐˜‚๐—บ

In physics, complete thermodynamic equilibrium means maximum entropy: no heat transfer, no work, no life.

In software, complete equilibrium means ๐˜€๐˜†๐˜€๐˜๐—ฒ๐—บ ๐—ฑ๐—ฒ๐—ฎ๐˜๐—ต.

A living, high-throughput system exists in a perpetual state of dynamic non-equilibrium. Data moves, memory mutates, network packets drop, and CPU cycles burn energy.

We do not build software to "eliminate" disorderโ€”we build systems to temporarily enforce local constraints against a default state of chaos.

๐Ÿฎ. ๐—ง๐—ต๐—ฒ ๐—–๐—ต๐—ฎ๐—ถ๐—ป ๐—ฅ๐—ฒ๐—ฎ๐—ฐ๐˜๐—ถ๐—ผ๐—ป ๐—ผ๐—ณ ๐—˜๐—บ๐—ฒ๐—ฟ๐—ด๐—ฒ๐—ป๐˜ ๐——๐—ถ๐˜€๐—ผ๐—ฟ๐—ฑ๐—ฒ๐—ฟ

Every component you add to enforce order introduces its own ๐—ฒ๐—บ๐—ฒ๐—ฟ๐—ด๐—ฒ๐—ป๐˜ ๐—ณ๐—ฎ๐—ถ๐—น๐˜‚๐—ฟ๐—ฒ ๐—บ๐—ผ๐—ฑ๐—ฒ๐˜€ behaviors where individual components act rationally according to their local physics, but directly conflict with your global system goal.

Look at how a simple requirement escalates into a distributed systems balancing act:

๐—ง๐—ต๐—ฒ ๐—š๐—ผ๐—ฎ๐—น: Build a reliable, high-throughput distributed ledger.

๐——๐—ถ๐˜€๐—ผ๐—ฟ๐—ฑ๐—ฒ๐—ฟ #๐Ÿญ (๐——๐—ฎ๐˜๐—ฎ๐—ฏ๐—ฎ๐˜€๐—ฒ ๐—ฆ๐˜๐—ผ๐—ฟ๐—ฎ๐—ด๐—ฒ ๐—–๐—ฒ๐—ถ๐—น๐—ถ๐—ป๐—ด): A single database node hits I/O write limits.

๐—ง๐—ต๐—ฒ ๐—Ÿ๐—ผ๐—ฐ๐—ฎ๐—น ๐—™๐—ถ๐˜…: Introduce ๐——๐—ฎ๐˜๐—ฎ๐—ฏ๐—ฎ๐˜€๐—ฒ ๐—ฆ๐—ต๐—ฎ๐—ฟ๐—ฑ๐—ถ๐—ป๐—ด.

๐——๐—ถ๐˜€๐—ผ๐—ฟ๐—ฑ๐—ฒ๐—ฟ #๐Ÿฎ (๐—–๐—ฟ๐—ผ๐˜€๐˜€-๐—ฆ๐—ต๐—ฎ๐—ฟ๐—ฑ ๐—”๐˜๐—ผ๐—บ๐—ถ๐—ฐ ๐—™๐—ฎ๐—ถ๐—น๐˜‚๐—ฟ๐—ฒ): Sharding breaks single-node ACID guarantees. Transactions spanning Shard A and Shard B can now partially fail, corrupting the ledger.

๐—ง๐—ต๐—ฒ ๐—Ÿ๐—ผ๐—ฐ๐—ฎ๐—น ๐—™๐—ถ๐˜…: Enforce distributed consensus using ๐—ง๐˜„๐—ผ-๐—ฃ๐—ต๐—ฎ๐˜€๐—ฒ ๐—–๐—ผ๐—บ๐—บ๐—ถ๐˜ (๐Ÿฎ๐—ฃ๐—–) ๐—ผ๐˜ƒ๐—ฒ๐—ฟ ๐—ฅ๐—ฎ๐—ณ๐˜ or a ๐—ฆ๐—ฎ๐—ด๐—ฎ ๐—ฃ๐—ฎ๐˜๐˜๐—ฒ๐—ฟ๐—ป ๐˜„๐—ถ๐˜๐—ต ๐—ฎ ๐—ง๐—ฟ๐—ฎ๐—ป๐˜€๐—ฎ๐—ฐ๐˜๐—ถ๐—ผ๐—ป๐—ฎ๐—น ๐—ข๐˜‚๐˜๐—ฏ๐—ผ๐˜….

๐——๐—ถ๐˜€๐—ผ๐—ฟ๐—ฑ๐—ฒ๐—ฟ #๐Ÿฏ (๐—–๐—ผ๐—ป๐˜€๐—ฒ๐—ป๐˜€๐˜‚๐˜€ ๐—Ÿ๐—ฎ๐˜๐—ฒ๐—ป๐—ฐ๐˜† & ๐—•๐—ฎ๐—ฐ๐—ธ๐—ฝ๐—ฟ๐—ฒ๐˜€๐˜€๐˜‚๐—ฟ๐—ฒ): Distributed consensus adds network round-trips. Traffic spikes overflow service worker threads.

๐—ง๐—ต๐—ฒ ๐—Ÿ๐—ผ๐—ฐ๐—ฎ๐—น ๐—™๐—ถ๐˜…: Introduce an ๐—”๐˜€๐˜†๐—ป๐—ฐ๐—ต๐—ฟ๐—ผ๐—ป๐—ผ๐˜‚๐˜€ ๐— ๐—ฒ๐˜€๐˜€๐—ฎ๐—ด๐—ฒ ๐—ค๐˜‚๐—ฒ๐˜‚๐—ฒ to buffer incoming requests.

๐——๐—ถ๐˜€๐—ผ๐—ฟ๐—ฑ๐—ฒ๐—ฟ #๐Ÿฐ (๐——๐˜‚๐—ฝ๐—น๐—ถ๐—ฐ๐—ฎ๐˜๐—ฒ ๐——๐—ฒ๐—น๐—ถ๐˜ƒ๐—ฒ๐—ฟ๐˜† & ๐—ข๐˜‚๐˜-๐—ผ๐—ณ-๐—ข๐—ฟ๐—ฑ๐—ฒ๐—ฟ ๐—˜๐˜…๐—ฒ๐—ฐ๐˜‚๐˜๐—ถ๐—ผ๐—ป): Network partitions force the broker to retry messages, causing duplicate processing and double-spends.

๐—ง๐—ต๐—ฒ ๐—Ÿ๐—ผ๐—ฐ๐—ฎ๐—น ๐—™๐—ถ๐˜…: Enforce ๐—ฆ๐˜๐—ฟ๐—ถ๐—ฐ๐˜ ๐—œ๐—ฑ๐—ฒ๐—บ๐—ฝ๐—ผ๐˜๐—ฒ๐—ป๐—ฐ๐˜† ๐—ž๐—ฒ๐˜†๐˜€ and deduplication stores.

Notice the pattern?

Every single architectural solution introduced to solve an NFR created a brand-new form of emergent entropy.

๐Ÿฏ. ๐—ง๐—ต๐—ฒ ๐—ฅ๐—ฒ๐—ฎ๐—น ๐—ฃ๐˜‚๐—ฟ๐—ฝ๐—ผ๐˜€๐—ฒ ๐—ผ๐—ณ ๐—ฅ๐—ผ๐—ผ๐˜ ๐—–๐—ฎ๐˜‚๐˜€๐—ฒ ๐—”๐—ป๐—ฎ๐—น๐˜†๐˜€๐—ถ๐˜€ (๐—ฅ๐—–๐—”)

When production crashes, junior engineers look for "who broke the code."

Senior architects look for ๐—ฒ๐—บ๐—ฒ๐—ฟ๐—ด๐—ฒ๐—ป๐˜ ๐—ณ๐—ฟ๐—ถ๐—ฐ๐˜๐—ถ๐—ผ๐—ป.

An RCA is rarely about a missing if statement. It is the discovery of an unexpected interaction between local component incentives and global system goals.

High-level design is not the art of building a system without friction. It is the discipline of mapping out where entropy will accumulate and building explicit boundaries to contain it.

๐—ง๐—ต๐—ฒ ๐—›๐—ฎ๐—ฟ๐—ฑ ๐—ง๐—ฟ๐˜‚๐˜๐—ต

Components naturally path toward the lowest energy stateโ€”which usually means dropping connections, leaking state, or failing silently.

If you architect assuming your components want to stay organized, production will humble you at 03:00 AM.

Design for entropy on Day 1, or the universe will enforce it for you.