In this chapter, we spent a lot of time talking in great detail about what's really going on behind the scenes in our Phoenix application. There are a lot of pieces of functionality that we tend to take for granted, even in our relatively simple Phoenix applications! GenServers, Processes, and Supervisors all power significant portions of our Phoenix application that we've written so far.
This is so pervasive that even before we got to this chapter designed around explaining a lot of these core concepts, we ended up having to implement one of the pieces of this puzzle (the ETS cache GenServer), because of how critical it is to the overall implementation and ensuring that we're building our Phoenix application the right way the first time around!
Understanding the concurrency building blocks behind Phoenix applications also goes a long way to give you both...