I’ve used similar “universal server” approaches for updating servers in other languages after reading about how Joe did it. I gave an example in wasp lisp recently.
I used it for real in a production Oz application, based on an example in Concepts, Techniques, and Models of Computer Programming, where I tried to have the application never requiring restarting - all updates live via this approach. I started off with a do nothing server, wrote and tested it locally, and sent it remotely to upgrade the server. All updates were repeating this. It was a fun experiment but required a fair but of careful work to upgrade local state.