> The programming model enables a developer to write a distributed application as a single program, where the code is split into modular units called components (Section 3). This is similar to splitting an application into microservices, except that microservices conflate logical and physical boundaries.
I definitely do see the merits to this. The fact that we always see logical separation of services resulting in split codebases did never sit right with me.
We've been trying to solve the same problem, but albeit in a different way here: https://docs.differential.dev/getting-started/thinking/ (Disclaimer: I'm the founder - would love to collaborate)
Trying to answer the question of - can you build your entire stack in a monolithic way, but split it to domain-driven services at the runtime?
That way, you get the developer experience of co-location, and runtime benefits of isolated workloads. The service definitions are malleable and can evolve as the complexity increases.