Reads Are Part of the Contract: A DBA’s Guide to ORM-Generated SQL
In I argued that the database is a published interface, and that the way to keep it changeable is to draw a boundary: a small, deliberate set of views and procedures is the contract, and…
Your Database Is an API: Treating the Schema as a Versioned Contract
A developer renames a column. The rename is clean, the build is green, the unit tests pass, and the pull request merges on a Tuesday afternoon. On Thursday a finance report that nobody on the…
A Decision Framework (and When to Stop Arguing)
This is the finale of the “Where Does Business Logic Live?” series. Over five posts we have looked at , the , the , the reality, and the . Now let’s make it actionable. This…
Security, Misconceptions, and Hybrid Architectures
This is Part 5 of the “Where Does Business Logic Live?” series. We have made the , the , and the comparison. Three things remain before we can build a decision framework: how security actually…
Performance and Operations: Measuring Instead of Arguing
This is Part 4 of the “Where Does Business Logic Live?” series. Parts and made the principled cases for the database and the application tier. Principles are where these debates start; measurements are where they…
The Case for Business Logic in Application Layers
This is the third post in the “Where Does Business Logic Live?” series, and it is the deliberate mirror image of the last one. In I made the strongest case I could for putting data-centric…