There is a discussion in the Elixir Patterns book (Chapter 7) of a method to control the rate requests are sent.
They use blocking calls to a GenServer that controls the request rate. Within handle_call, the GenServer adds the calling pid to a queue in the GenServer’s state and returns :noreply, leaving the caller blocked. Then they process the queue in order at the desired speed, using GenServer.reply to respond to each waiting request process.






















