Database Design Starts With Invariants

Schemas become durable when they encode the truths that concurrent application code must share.