Got it, thank you for that explanation. I completely agree that we can eliminate all kinds of erroneous behaviors with better type systems.
> good luck with a legacy microservice architecture in a few years. And it seems to be getting worse.
It is getting worse. The complexity of systems and their dependencies are growing faster than the discipline of seeking to reduce accidental complexity.
I imagine an implementation of this is equivalent to writing code and tests with the same level of detail as one might today. Language features put constraints on the solution, but do not reduce the essential complexity of a problem.
Could you elaborate more on what you mean by "could be taken much further"?
> good luck with a legacy microservice architecture in a few years. And it seems to be getting worse.
It is getting worse. The complexity of systems and their dependencies are growing faster than the discipline of seeking to reduce accidental complexity.