Podcast · Deep Dive

Why Folders Break Multi-Tenant Software

Two engineers argue through a tenancy model before it is too late to change it — why the obvious move (add a layer) is the wrong one, what "don't add a tier, buy the fold" actually means, and whether the design survives eight customer shapes we do not have yet. Generated from the Situs Onboarding Atlas — Hierarchy.

Why Folders Break Multi-Tenant Software

47 min 09 sec · Deep Dive format · two hosts

Download .txt

What it covers

Not a rollout plan — a design argument. The hosts take seven decisions in order and, for each, state the obvious move first and then why it was rejected. It opens on the failure that gives the episode its name: a change meant for a few buildings that wipes out settings for hundreds of businesses, because the code could not tell a brand from a building.

The spine of it is one claim: the expensive mistake was never how many levels the hierarchy has. It is that resolving a setting is a hand-written conditional, written fresh for each question — so with N of those, adding any level means rewriting N resolvers and re-arguing the direction N times. Make resolution a fold over an ordered chain instead, and depth stops being a schema change.

Two stretches are worth the time. Precedence, where two written rulings inside the company appeared to contradict each other and the resolution was that precedence belongs to the key, not the tier — four classes, and both rulings become true of different keys. And the type error: one phone number serving forty buildings is not a missing row, because a map from number to one building cannot represent it and inverting it is not a function. That is why the problem felt strange — everyone kept hunting for the configuration that was missing.

It ends on a stress test rather than a summary: eight hypothetical customers run against the model. Six hold. Two do not, and the episode says which and why — a joint venture with two managers on one building, and an acquisition merging two companies, where org-scoped identity offers no help.

About this transcript

Machine-transcribed with Whisper, then paragraphed. Speaker turns are not marked — the two hosts trade lines quickly and the labels were not reliable. Proper nouns were corrected: Whisper heard “Situs” as Cetus and Citus nine times, the same failure as the previous episode. Wording is otherwise untouched and occasionally awkward.

PropFlow Docs