Hi,
During FOSDEM, one of the discussions touched on the components' handling of incoming RPC calls. Currently this is done in a synchronous manner because (if I remember correctly) it was simply easier to implement it that way as opposed to handling it asynchronously.
What would be some of the challenges in handling this asynchronously? It was mentioned that the RPC mechanism was tightly integrated with the whole codebase, so it would require a large refactor. I am curious to hear your thoughts on how supporting asynchronous RPC calls could impact the following:
- preservation of determinism (in the context of formal verification)
- would the capability model need to be reworked to support revoking in-flight RPC requests? If so how could a client component signal to the server that it should drop the request?
I don't mean to argue for replacing the current model, I'm just interested learning a bit more about the design trade-offs :)
Best,
Rumen