Everything Is a Tradeoff

Categories
Architecture
Sources
Designing Data-Intensive Applications, Fundamentals of Software Architecture, Site Reliability Engineering (Google), Threat Modeling (Adam Shostack)

There are no universally correct choices in engineering, only tradeoffs that depend on context. Whatever structure, technology, or guarantee you gain costs something elsewhere, so the work is not to find the single best option but to make the tradeoff explicit and choose deliberately for the situation at hand.

Reinforced By

  • Architecture Characteristics — the "-ilities" compete, so you cannot maximize them all and must choose which to sacrifice.
  • Scalability — scaling up is simple but bounded; scaling out is unbounded but adds distribution and coordination cost.
  • Linearizability and Eventual Consistency — stronger guarantees cost availability and latency; the consistency choice is a pure tradeoff.
  • Service Level Objectives and Error Budgets — reliability is not maximized but chosen: every added nine costs more than the last, and the error budget turns the reliability-versus-velocity tradeoff into an explicit, spendable quantity.
  • Threat Modeling — you cannot mitigate every threat, so security is risk prioritization: each threat is mitigated, accepted, or transferred, traded against usability, cost, and effort.

Why it Matters

Fundamentals of Software Architecture states it as its First Law: everything in architecture is a tradeoff, and if you think you have found a choice that isn't, you just haven't identified the tradeoff yet. Designing Data-Intensive Applications reaches the same conclusion for data systems: there is no single best tool, only tools whose tradeoffs fit a problem or do not. Site Reliability Engineering carries it into operations: reliability itself is a tradeoff, since 100% is the wrong target and the error budget is the price of velocity made explicit. Threat Modeling carries it into security: since not every threat can be mitigated, the work is to prioritize risk and trade mitigation against usability and cost. Across architecture, data, operations, and security the discipline is the same, name what each option costs, decide against the characteristics that matter here, and distrust any claim of a free lunch.

Tension

Naming tradeoffs takes time and can stall a decision in analysis, and "it's all tradeoffs" can become an excuse to avoid taking a position. The worldview is a prompt to choose deliberately, not to deliberate forever.