You can also think of a GenServer
mostly as a thing that allows you to serialize access to something; like a kiosk where the queued people can only be served one by one. This can be extremely important when you want to enforce this kind of access to a native lower-level resource.
Another useful thing to envision a GenServer
for would be as a single worker in a pool of workers.