The schema is a published interface, so it helps to treat it like one.

This eight-part series covers versioning and deprecating the schema, ORM-generated SQL, CI/CD for database deployments, testing database code with tSQLt, idempotent retries, the transactional outbox, temporal tables and CDC, and multi-tenant isolation with Row-Level Security. It follows the Where Does Business Logic Live? series.
- Your Database Is an API: Treating the Schema as a Versioned Contract
- Reads Are Part of the Contract: A DBA’s Guide to ORM-Generated SQL
- Putting the Contract Under CI/CD: Database Deployments You Can Trust
- Proving the Contract Holds: Testing Database Code
- Idempotency Is a Contract: Making Retries Safe from the Database Side
- The Transactional Outbox: Reliable Messaging Without Distributed Transactions
- What Changed, When, and by Whom: Temporal Tables and CDC
- Isolation Is a Contract: Multi-Tenant Data Boundaries
Questions or corrections are welcome on Bluesky or LinkedIn. See all series on this blog.