concept

Architecture Sinkhole

A request that passes through every layer of a layered architecture without any layer adding logic, indicating that the layering is pure overhead for that path.

In a layered architecture, a request descends through presentation, business, persistence and data. A sinkhole is a request where most layers simply pass the call along — a simple lookup that becomes four function calls and four object mappings and no decisions.

Some sinkholes are unavoidable. The rule of thumb is the 80/20 test: if roughly 20% of requests are sinkholes, the layering is earning its cost. If 80% are, the architecture is adding indirection without adding anything.

The remedies are both reasonable: allow selected layers to be open, so a simple query may bypass the business layer explicitly; or accept that the system is not layered and choose a different style.

The broader point is that layering is a cost paid on every request in exchange for isolation of change. It is worth it when layers genuinely change independently — swapping a persistence technology, adding a second presentation channel — and worth very little when they do not, which is the common case in a system with one client and one database.