3 ms·
Interesting paper, i've thought about this topic a lot. In previous projects I defined systems in a single code base, and parts could be deployed separately by
by synthc 3y ago
Interesting paper, i've thought about this topic a lot.
In previous projects I defined systems in a single code base, and parts could be deployed separately by providing different configuration files.
It was a very productive approach: one could run the whole system in a single process during development, which made writing integration tests a lot easier than spinning up dozens of docker images.
It still required some manual work, and deployments were still to static for my liking. Ideally it should be possible to split off and scale subparts dynamically.
In the Clojure world there are several projects now that explore splitting up services in a transparent way.
For example Electric Clojure splits up your code into frontend and backend parts, making the frontend-backend split transparent.
Another project is Rama, which does something similar but for distributed steam processing and partitioning.
I'd love to explore something like this but for enterprisey service meshes: the programmer just defines services, and a compiler decides how to split these over different machines, and all the RPC/serialization/deserialization is done for you.
- _a_a_a_ 3y agoRegarding your last paragraph, interesting idea about the compiler doing the work, but isn't RPC/serdes basically built into CORBA or OLE transparently? Never used the former, and the latter was so long ago I forgotten it, but I thought that was the idea.