GenServer processing

You don’t even have to reply in another process. The trick is that handle_call doesn’t have to reply immediately. So the state of the call can be stored in the GenServer state and once the reply is ready GenServer.reply/2 can be used to complete the call. Just remember that on the client side there is a timeout.