Business logic should not know what database it is running against.

The Buffer keeps the core of a system independent of the infrastructure at its edges. Databases, queues, HTTP clients, the system clock, environment variables: these all live at the periphery, behind small interfaces the core is handed rather than reaches for. The core stays pure. It takes its inputs as data and returns its decisions as data, and it neither knows nor cares how those inputs arrived.

The test is simple, and I call it the Airplane Test: could this logic run and reason correctly with no network, on a plane, in a unit test, with nothing mocked but its direct inputs? If yes, the Buffer is intact. If the only way to exercise the rule is to stand up a database or set an environment variable first, the rule has fused with its environment and you have an Infected Core.

This matters because infrastructure changes faster than business rules. Swap Postgres for DynamoDB, move from env vars to a secrets manager, and a system with a healthy Buffer barely notices. A system without one has to be reopened at every layer the change touches.

The Buffer is easy to state as a build rule: a pipeline node may take its config as parameters but may never read os.environ directly. A rule like that keeps the core testable with no network and no ambient state, and it fails loudly the moment a convenient shortcut tries to fuse the logic to its environment.


Related: violated by the Infected Core. Works alongside The Shield, which keeps the pieces independently replaceable.