RPC design: async and event loops

Hello! At Tails, we're finally having a look at the new Arti release. There are lot of RPC goodies in latest release, and that's great!

I was starting to look at the integration of the python RPC library into our own Tor Connection, so here I am with some question which come from GObject-specific details, but I expect to be relevant for any application based on event-callbacks, which is most thing I can think about. I understand that the execute method is synchronous (ie: it blocks until it gets a response). The execute_with_handle, on the other hand, returns a handle. A handle sounds like a way to get updates and responses asynchronously but... does it? I only see a ArtiRequestHandle.wait() method.

That's not so bad: while async is often nicer, I expect responses to be very fast in practice. But updates will be a different thing, and they will require some mechanism for async programming. I understand updates are still not supported.

More than about details of the current implementation (I can totally see how this could yet be WIP), my question is about the general "style" of the library. Will it have its own event loop, to be run in a separate thread? Will it be possible to integrate it into other event loops?