12 May 2026

Naming conventions that survive growth

Teams waste a surprising amount of heat on punctuation. The convention that actually fails is semantic: names tied to screens, tickets, or campaigns that will not exist next year.

Open notebook used during schema planning

Pick one family — object_action or objectAction — and apply it on iOS, Android, and web. Do not let each platform follow its native style. The warehouse does not care that Swift prefers camelCase. Analysts do care when CheckoutStarted and checkout_started both exist.

Name the object after the business noun, not the screen title. checkout_started survives a redesign; bag_screen_viewed does not. If the product team renames “Bag” to “Basket” in Thai and English copy, the event should not notice.

Avoid campaign residue. songkran_promo_tap is a footnote, not a schema citizen. If you must measure a campaign, use a property on a durable event, with an allowed-value list that expires.

Localisation is where imported US lists break. Display strings may be Thai; event names stay in one working language, almost always English, with a written exception list. Property values that users see — plan names, cities — need a canonical enum, not free text copied from the UI.

In the Event Schema Atelier we spend a full week on this and students still try to sneak in Jira keys. We delete them. A name that only the author understands is not a contract.

If you are still arguing about underscores, you are not yet arguing about the product. Freeze the punctuation in an afternoon. Spend the rest of the month on objects.

← All notes