The design principle of composability
When I'm trying to create an algorithm I find inspiration from nature. This includes evolution such as what we can see in algorithms which leverage evolutionary computational paradigms (survival of the fittest) or it can include cosmic such as how galaxies form. The example in this post is based on a feature of our universe where very simple behaving particles can combine in different ways to produce emergent complexity. In programming we call this concept "composability".
Composability and compositionality are related
Composability and compositionality are related. This is to say, to think of the design of the architecture as you would think of a sentence with words or a series of symbols and merely by changing the positions of the symbols or choosing different combinations of these words we can create extremely complex structures.
If we look at compositionality we find we can turn compositionality into composability which shows that they are related. Composability is the feature of the universe allowing simple component parts to be combined to produce complex architectures. In design to have composability is to allow for evolvability which is to state that as our knowledge improves, as our desires change, our design can adapt to current needs.
References
Andersson, B. (2016). Turning compositionality into composability. ACM SIGBED Review, 13(3), 25-30.