In a client server application I designed as part of a previous job we did exactly this.
An RPC call was a list of functions and arguments, and there was a special tag that could refer back to a previous return value in the same set of calls.
All calls in the same request was executed in the same transaction. Them main goal was to avoid usingddistributed transactions, but also helped reducing latency over slow connections.
I think my comment got lost because I can’t find it, but I said something like: maybe we need a formal macroassembler for IPC/RPC calls instead of running “code” directly in the kernel.
An RPC call was a list of functions and arguments, and there was a special tag that could refer back to a previous return value in the same set of calls.
All calls in the same request was executed in the same transaction. Them main goal was to avoid usingddistributed transactions, but also helped reducing latency over slow connections.