At this point in our Elixir/OTP course, we see two types of code in our client-server interaction:
Application-specific code that applies only to our PledgeServer process
Common code that is needed for any server process
So what happens when we move all the common code into a generic module?
Well, we’re not the first ones to have that idea! In fact, writing stateful server processes is so common that Elixir provides an abstraction: GenServer. GenServer is a design pattern (an OTP behavior) that helps us write server processes with greater ease.
In this week’s new module #25 Refactoring Toward GenServer we refactor our code toward the GenServer style and by the end, you’ll have a deep understanding of how (and why!) it works.