The story of composability

The importance and power of composability was something I understood much later than I should have. I call this the story of composabilty and by it I mean the repeated, outsize success of composition to solve complex problems. To me this is an exception to the general rule of how solutions created without a specific problem in mind is a recipe for failure when the reverse (solutions created for a specific problem) is a recipe for success.

Composabiilty is so powerful that it’s in its own class of concepts. Ultimately it’s defined by a set of atomic building blocks that perform some small, narrow function. Products / services / solutions are created by arranging these building blocks in a particular topology to create complex, emergent behavior. Not all building block sets are collectively capable of the same emergent behavior but the most powerful ones are something called Turning complete. It is a measure of computational power and flexibility. If a set of building blocks is Turing complete, even under a particular set of constraints, it’s very difficult to overestimate the scale and breath of its capabilities.

Composability is all around us in various forms.

  1. If you are reading this, you are probably doing so on a computing device. Computers are fundamentally built on a set of atomic instructions called opcodes. This is the most basic foundation upon which all software runs. The same software that runs device’s operating system and browser. The same software that runs the internet. The same software that runs the computers serving you this web page.
  2. Technology innovations all around you have been built upon prior technology innovations. We had the wheel, then the cart, then the train, then the car, etc. We had jets, then missles, then rockets. We had wood, then coal, then gas/oil, then nuclear for energy production. We had telegraph lines, then phone lines, then internet lines. There is a topology and sequence to the emergence of technology. A more concrete example is just the topology of citations for various scientific discoveries. Most research papers building incrementally on concepts developed elsewhere. MRI machines were built on concepts in math (fourier analysis), physics (electromagnetism), and electrical engineering (signal processing). More advanced MR imaging like magnetic resonance neurography were then built off of MRI.
  3. Economies are built from composition. The foundation is a human population, some level of free trade, and some level of property rights. The building blocks are naturally individuals. They can be composed together in a certain topology to form trade networks. Some of those trade networks are formalized as companies. Unformalized trade networks are usually called industries / markets. The building blocks interact through free trade or contractual agreements. For example, I give you $100, and you perform a service. Or you pay me $X per year, and I’ll come work for you at scheduled times and perform assigned tasks.

There are countless other examples I could list if given enough time. For example, there’s DNA (the building blocks are ATCG nucleotides, from which all living things are built); periodic table of elements creating all forms of matter; there’s legos; neural networks (built from neurons); ecological systems (built from various species + material + energy source); Magic the Gathering is famously turing complete; public cloud (e.g. each AWS service is a building block), software APIs, etc.

My guess is that any system built of atomic blocks that is capable of Turing completeness is capable of more things than anyone can envision. If it’s Turing complete, it means it’s capable of solving any computable problem, meaning it can conceiveably solve every computable problem. This means that any problem appropriate for that particular system can be solved by it, and nobody knows every problem out there that exists. So to bet against Turing complete systems is to bet on the non-existence of appropriate problems. Betting on the non-existence of problems is very difficult be right on because it also includes problems that don’t exist today. Who could have guessed in 1822 that Fourier analysis would be used in medical imaging (MRI)? Or in 1930 that computers would eventually be so useful that every person would have one in their pocket (smartphones)?

To illustrate how unintuitive and weird it is to predict the abilities of Turing complete systems, I’ll make one prediction: All medical therapies are possible strictly through genetic reprogramming, and it will replace large parts of medicine as we know it one day. We already know DNA is Turing complete, which means it is capable of any therapeutic computation. One shot in the arm could reprogram the body’s cells to cure psychiatric disease, to reprogram cells to heal a traumatic injury with tissue loss (amputation, paraplegia, head injury), to create antibodies for a cancer/disease/virus, to reprogram cells reversing senescence, to change the shape of your body for cosmetic purposes, etc. This has real-world consequences today – the medical frontier of genetic engineering may be the bigger than you think.

As much of the world is built on incremental progress, a corollary is that introducing new atomic building blocks in a composable system is a formula for success. Amazon’s 2002 and 2023 letters to shareholders had exactly this thesis. In 2002 Bezos mandated that all services interact strictly through APIs, making the service a fundamental, composable building block in the service-defined-architecture. In 2023 Jassy outlined how AWS is built on fundamental primitives, and that the success of Amazon is about creating new kinds of primitives (such as AI-based products) to power customers to compose solutions appropriate for their unique problems.

While a system may already be Turing complete, higher level constructs make complex behavior easier to assemble. A great example of this is modern programming languages. Today we don’t program in computer opcodes, but rather human-readable programming languages with libraries. Those independent software modules may be built on another layer, such as a virtual machine, which may be built on another layer, assembly language, which is finally built on the computer’s opcodes.

This is the same idea behind the value of companies, which are just higher-level constructs built on the individual efforts of people. Building a company in this sense is just economy engineering. Often this is misunderstood (e.g. “Uber reinvented taxis”) because the core innovation is a new set of APIs. With Uber, you use your phone to find the nearest “taxi”. With conventional taxis you have to be in line-of-sight of the driver and flag them down. Similar transportation services, totally different APIs. Elon Musk’s hyperloop is famously misunderstood as reinventing trains, but the intended API is again different: conventional trains move slower due to air friction, but hyperloop (air vacuum + magnetic levitation) can move much faster due to the absence of friction).

There’s a lot to learn about the world by viewing it through the lens of composability. This is due to how powerful composability is. To say it’s a force of nature is not enough, it’s truly a force of physics. To view the world through this lens, you should understand the concepts of Turing completeness and APIs (application programming interfaces). You should be able to recognize when composable systems meet this computational theshold. You also have to learn to recognize atomic building blocks. Understanding APIs will allow you to recognize higher-level constructs and potentially create one yourself.