GenServer
GenServers are a design pattern of OTP that encapsulates the behavior of a process. They are used as a general purpose abstraction for building generic servers.
The process holds a specific state, which can be queried and manipulated by sending messages via processes.
Implementation
In order to bring GenServer functionality into a module, place the macro, use GenServer
directly after the module definition.