3 ms·
One of my predictions for software in the AI age is that we will end up with nano-services. The thinking is this: 1. LLMs perform best with tight, focused cont
by keeda 2mo ago
One of my predictions for software in the AI age is that we will end up with nano-services. The thinking is this:
1. LLMs perform best with tight, focused context.
2. Encapsulating specific well-defined functionality into a single service, tool or API inherently limits the amount of code it requires, and hence the context an LLM requires to reason about it. The smaller the codebase, the better an LLM will do with it.
3. Code is already increasingly written by swarms of agents that tend to step on each others' toes, and hence a way of isolating them would be great.
4. Combining the 3 points and taking them to the logical conclusion, we end up with nano-services.
It's basically the Unix philosophy, just scaled up to distributed systems. For all its other issues, the core philosophy worked pretty well for Unix tools, so it should work well for nano-services too.
Currently the "pipes" between these services are network calls, but they need not be. One could imagine an architecture where these components are composed either as direct function calls or remote network calls depending on access patterns and resource requirements for a given instance. Never worked with Elixir but I think that might fit the bill?
Maybe every sufficiently complicated distributed system will end up re-inventing an ad hoc, informally-specified, bug-ridden, slow implementation of half of Elixir.