Wanderland

The Lebowski Corollary

A distributed systems principle for the chronically chill


"That rug really tied the room together."

The rug is the source of truth. All opinions about the room—the furniture placement, the vibe, whether it's a nice place—are derived from the rug.

When someone pisses on the rug, the whole movie happens. Opinions start conflicting. People take sides. Violence ensues. Not because the opinions were wrong, but because the authoritative substrate got violated and nobody knew how to reconcile anymore.


The Principle

In distributed systems, you need exactly one source of truth—the event log, the database, reality, whatever the authoritative substrate is. Everything else—caches, read models, projections, materialized views—is derived.

Those aren't wrong. They're just context-specific interpretations.

They're just, like, your opinion, man.


The Four Noble Truths of Distributed State


Operational Implications

If two services disagree, don't arbitrate between opinions. Go back to the source. The conflict was never real—it was just two projections that drifted.

The moment you try to sync state bidirectionally between two services, you've got two rugs. Now which one ties the room together? You've created a nihilist situation. And say what you will about the tenets of Event Sourcing, at least it's an ethos.


The Yoneda Connection

This pairs beautifully with the Yoneda Lemma.

The source of truth is the object. The opinions are the morphisms—ways of looking at it from different positions in the category. They're all valid views. None of them are the thing.

The Dude isn't defined by what he does. He's defined by how everyone else relates to him. Walter's opinion. Donny's opinion. The nihilists' opinion. Maude's opinion. All valid morphisms. But the Dude—the object—just abides.

         ┌─────────────────────────────────────┐
         │          THE RUG (truth)            │
         │      append-only, immutable         │
         └───────────────┬─────────────────────┘
                         │
        ┌────────────────┼────────────────┐
        ▼                ▼                ▼
   ┌─────────┐     ┌──────────┐     ┌──────────┐
   │ Cache A │     │ Read     │     │ Service  │
   │         │     │ Model B  │     │ View C   │
   └─────────┘     └──────────┘     └──────────┘
       │                │                │
       └────────────────┴────────────────┘
                        │
          "That's just, like, your opinion, man"

The White Russian Test

When debugging distributed state:


See Also

Slots