What happens when starting up your GenServer requires executing a long-running process? We don’t want the execution of that process to block the GenServer from completing start-up. We also don’t want to execute that process asynchronously in a way that creates a race condition between the running of the process and other messages arriving in our GenServer’s inbox. In this post, we’ll take a closer look at these two problems and understand how OTP 21’s GenServer.handle_continue/2 is ...