A tradeoff is a design decision where gaining one benefit means accepting a cost elsewhere. The interesting cases are non-obvious: they force you to explain why one option was chosen, who gains, who loses, and how to compensate for what is lost. section 2.2.7
Use this short test when evaluating or explaining a choice:
- Name the competing benefits, such as performance versus developer experience. section 2.2.7
- Identify the users or stakeholders who bear the cost. section 2.2.7
- Justify the choice in its specific context and describe ways to offset the downside. section 2.2.7
Flexible data or fast queries?
An unstructured database can help developers get started quickly and change data shapes easily. Strict schemas with carefully chosen indexes can deliver much better performance, but make users manage schema correctness. Neither approach wins universally; the right choice depends on which cost the product can accept. section 2.2.7




