Journal · 9 November 2025

The property dictatorship

Every extra field is a future join, a future null, and a future argument about what “unknown” meant in 2024.

Open notebook with diagrams beside a camera lens

Product managers love optional properties the way attics love boxes. device_model_raw, experiment_name_full, referrer_unparsed — each sounded cheap at the instrumentation meeting. Two years later nobody will filter on them because the values are a folksonomy.

Give each event a ration

In Signal Architecture we issue a budget: a small number of properties per event, each with an owner and an enum or a documented free-text exception. New requests buy their way in by retiring another field. This feels petty. It is the only politics that keeps App Analytics from becoming a second CRM.

Derived fields belong in the warehouse with a job name, not on the client “in case the pipeline dies”. Client properties should be those you cannot reconstruct: the button label the user actually saw, the permission state at tap time.

Dictatorship, not vandalism

The dictator publishes the budget. Amendments go through the freeze protocol. If your organisation cannot name a dictator, you do not have a dictionary; you have a shared drive. A Desk Note can sometimes show you the attic. It cannot appoint the person with the key.

← Journal index