One table for the three layers of the event-sound stack

Featurekamo-shared-library
Shipped
August 14, 2026 at 10:35 PM UTC
Author
Kamo
Commit
4b3545b

Platform defaults, an organization's overrides and a member's own are the same shape, so they are the same table: a scope, the id that scope is about, and the settings document. Splitting them across SYSTEM_CONFIGURATION, a column on ORGANIZATIONS and a MEMBER_UI_PREFERENCES key would have made three readers, three writers and three shapes for one idea. SCOPE_ID is 0 rather than null for the platform row, so UK_EVENT_SOUND_SCOPE actually binds — SQL uniqueness does not constrain NULLs, and two platform rows is not a state anything downstream can resolve. The blob stays opaque to Java. Which events exist and which tones the palette offers is a browser concern; a service that validated the key set would need a redeploy every time an event was added, and would reject a member's saved settings the moment it fell behind. Schema applied via KamoInitializer and verified in Yugabyte before this push.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing