Status: WIP.
Alternative titles: Full stack orthogonality, Orthogonality enables optionality, Orthogonality enables agility, Orthogonality enables speed.
Approach: compose each layer of your app so that its part are orthogonal. That enables flexibility and optionality in the layer above. Above layers can move around without the base layer needing changes.
In some applications, we might have these layers:
If we design our infrastructure layer as a collection of orthogonal pieces, we can easily compose those pieces when we move up a layer.
Composable, orthogonal infrastructure makes it easy to build product functionality. We’re not restricted by stuff that’s missing.
But infrastructure doesn’t make a product. It enables a product. A product is a set of features. For good products, the features are orthogonal. Each feature does something different.
Not complete.