A manifesto
Refuse the Flatness
A manifesto on spatial observability: why flat tools cannot render absence, why position is what your tools have been missing, and the world your software has always lived in.
Published
You have been working in fog
It is 3 a.m. and something is wrong. Forty-seven tabs, four dashboards, a customer going quiet in Slack. Somewhere in a system too large to hold in one head, a service you cannot name yet is failing in a way you cannot see yet. Your tools are good: the map draws every service and reddens the failing one. The problem is that the picture comes together in only one place, and that place is your own exhausted head.
That is the fog. It was sold as visibility, and it is still fog, because it makes you the one who assembles the picture.
You have the power to change things.
Refuse what, exactly
Be precise about the enemy, because the lazy version of this argument is wrong and every engineer reading this knows it.
The flat tools are not blind. Preattentive vision, the pop-out effect Treisman mapped, finds one red hexagon in a field of gray in under a second, and a third dimension would mostly give it somewhere to hide. If flatness meant the count of dimensions, it was never worth refusing.
It means something else: the refusal to keep any state where your attention lives. The filter you write to survive the flood is a chore you babysit mid-incident. Navigate away and back, and your investigation is gone, because it was never a place, only a query that ran. Everywhere the engineer actually stands, the flat paradigm holds the artifact and forgets the session.
That is the real complaint under the whiteboard you keep redrawing at every job. Not that the tool cannot see. That it cannot hold, so you hold it, in your head, at 3 a.m., which was never the job.
Spatial means where you are
The problems of Berlin matter more to the people who are in Berlin. Standing in it is enough, because from where you stand some things are near and most are not, and nearness sorts what matters from what does not. A pager rotation puts you at a node the way a posting puts you in a city. Spatial observability is that ordering applied to a running system. Where you stand determines what matters.
This is not a rejection of the query. The sharpest flat tools made interrogation their whole creed, and a place is where a question lands and stays answered. A WHERE clause is a position too, one you stand in for exactly as long as you keep it typed. Declared locality is a sentence you keep repeating. Occupied locality is a room you are in.
Then why spatial and not simply stateful? Because position is what addresses the state: it is how you and the machine agree on which slice of it matters right now, and how the system decides what your partner sees.
So the word carries no geometry. It stays true in three dimensions, in two, or as a line of text that reads: you are at the payments service; upstream, checkout has gone quiet.
Three tests
An idea that cannot exclude anything is a mood. Here is the definition with teeth, three tests any tool either passes or fails, whatever it renders:
Continuity. Does the tool know that the payments service today is the same thing as the payments service last Tuesday, independent of where any layout happens to draw it, so that returning to it twice is a comparison and not a coincidence?
Proximity. Does standing at a node scope the view and the data by itself, with what counts as near already in frame, no filter written, no filter babysat?
Memory. Does your position, and what you have already ruled out, survive navigation, persist across the incident, and remain readable by the machine partner working beside you?
Pass all three and the tool is spatial in the sense meant here, even if it renders as text. Fail them and it is flat, however many dimensions it draws. By these tests the prettiest 3D flythrough ever demoed is flat, and that is the point.
What a place can hold
Give the engineer a place to stand and three things become possible that a stateless surface does not natively hold.
The map moves because the system moves. What persists is not a coordinate but a relationship: the payments service may sit anywhere on screen, and its callers and dependencies are always the neighborhood around it. That is where absence becomes legible. The service that should be calling this one and today is not shows up as a gap in the cluster it belonged to; you find the phantom because the ones still alive are standing around the hole.
Systems go quiet all the time, so absence is not declared on the first missed beat. Only once a silent peer has stayed gone long enough does the gap harden into a phantom, drawn as the black hole among its live callers, and if the peer comes back the gap closes, because a phantom is a live inference, not a headstone. A thing that fades was here and left. A thing that stays dark was never here and is being called anyway.
Where you are is what you are asking. Arrive at a node and its neighborhood is already in view, already scoped. The machine beside you is not a chatbot in a sidebar: its view is your neighborhood, and it proposes the only way a partner in a place can, by pointing. Its native output is not a paragraph. It is a place to look. And it stops where deciding begins: it can mark anywhere and move nothing, because the one who answers for what happens next is the one who should decide it.
The now holds still, and a moment reconstructs around you. The flat tools force a choice: the map is legible but past, the stream is present but running away faster than you can follow. A pause is not a place, because the state you froze recedes the instant you resume. A place does not scroll. You do not query whether it is still happening. You watch it stop. The flat paradigm's best answer here is the distributed trace, but a trace is one request's thread, and the neighborhood around it while it broke is the part it cannot give you. Stand at the failing service and freeze, and that neighborhood assembles itself: the queue backing up while the deploy rolled and checkout went quiet. Because a service stays the same service even as its position drifts, two moments compare by returning to it twice, this node now and last Tuesday beside it.
A place must tell the truth about itself
A place can lie in ways a panel cannot, and the more whole it looks, the more dangerous the lie. The honesty is not a virtue draped over the design. It is the design.
A service no one instrumented is not drawn as a gap; it is simply not there, and a scene that looks complete tells the engineer's own eyes that nothing is missing. So the scene must wear its blind spots: the unobserved has to look unobserved, inferred structure has to look inferred, and a world that is live but delayed has to show its delay, because animated traffic that is really ninety seconds old is exactly the misplaced trust that gets people hurt.
And there are debts no rendering pays, so they are owed here, plainly. A distributed system has no single instant: clocks skew, events arrive out of order, sampling drops events, so any frozen scene is a constructed cut and must show its seams. A reflowing layout costs the muscle memory of a room that never changes. Whether a scene of thousands of services stays legible has to earn itself. How often an inferred connection is wrong, and how often a rendered absence is a false alarm, is unmeasured, because a phantom that fires when nothing was lost burns trust in a week.
And the debt that outranks the rest. The number this whole idea lives or dies on is time from first anomaly to witnessed cause, measured against the best flat baseline there is: a good trace waterfall and a well-tuned dashboard. That number does not exist yet. When it does, it should be published with the method in the open, whichever way it lands.
The graveyard
People have built spatial observability before, and it died. Netflix open-sourced Vizceral, a beautiful live traffic map, and let it go quiet. CodeCity rendered software as buildings. 3D topology viewers and VR network operations centers get rebuilt every hardware cycle and buried every time. People tried them, and users did not want them. That deserves an answer, not a step around.
The answer is a bet, not a proof. What died was spatial rendering: pretty maps you flew a camera through and then went back to your dashboard to work. By the three tests above, every one of those corpses was flat. Vizceral drew the traffic; it did not know a service as the same thing across two Tuesdays, did not scope a partner to where you stood, did not carry an investigation with you when you moved. It was a picture, not a place to work in.
As for why the incumbents never grew it from the inside, what shipped, shipped as bolt-ons: a pause button, a pinned board, a saved query, because a flat tool is stateless and query-shaped all the way down.
Someone always asks about the other graveyard, so, quickly: no NFTs, no virtual land, nothing to buy low and sell high. It runs on the screen already in front of you, and a headset is the deepest way in. A production system is already full and only needed to be shown as the place it is. The nearest true ancestor is the Bloomberg Terminal, and what is borrowed is not its rendering, which is flat, but its inhabitation: a professional lives in it all day, fluent in it the way you are fluent in your own hands.
Refuse the flatness
The dashboard earned its place. Under the hardware of 2005, a flat field of charts was the best a running system could be compressed into, and observability as a discipline is one of the real achievements of the era. It is not the enemy. It is the past, and it is owed credit on the way out.
You have felt the rest of this at 3 a.m., the certainty that there had to be a better way to hold a system than in your own tired head. The claim is that the better way is a place: a stateful, occupied, living position you work from, the machine's context scoped to where you stand, the deciding still yours. It is a bet, it is falsifiable, and the honest move is to name the number it turns on and run it in the open.
Refuse the flatness if the number earns it.
That measurement is the next thing to build.
#refusetheflatness