We talked a bit at the start about the concurrency and parallelism model at play in your standard Phoenix application but not really a lot about what it actually means. Sure, we get great scaling and performance right out of the box, but what is really going on? Phoenix is built to heavily lean on the BEAM VM's constructs, which allow multiple processes to be spun up at a moment's notice and discarded almost as quickly! The ability to spin up new processes with very low initial cost and toss them away without any repercussions to the rest of the system is a large part of what enables us to create such projects and architectures in Phoenix!
In Elixir, we typically try to divide up related bits of work into their own processes, much in the same way that in an object-oriented language you may try to separate functionality...