Elixir has introduced a wonderful first class concept called a Task. It allows you to do some work in a new process and easily collect the result, like so: iex(1)> something = Task.async fn -> ...(1)> 10 + 6 ...(1)> end %Task{pid: #PID<0.44.0>, ref: #Reference<0.0.0.55>} iex(2)> Task.await(something) 16 On first glance, it looks a lot like constructs found in other languages. For example, Scala ha