Book Image

Elixir Cookbook

By : Paulo Pereira
Book Image

Elixir Cookbook

By: Paulo Pereira

Overview of this book

Table of Contents (16 chapters)
Elixir Cookbook
About the Author
About the Reviewers

Implementing a GenServer

In this recipe, we will implement a simple server that will store pairs of values (IP and UUID).This might be used, for instance, to store users of a system who are currently connected.

In this recipe, we will only store the provided information and respond to requests on whether a user with a given IP is connected or not.

Getting ready

We will implement a server using the OTP-defined GenServer behavior. We will need to implement the start_link and init functions and some callbacks to handle the messages our server receives (handle_call or handle_cast). To make the interaction with the server more pleasant, we will create some wrappers around the callbacks creating a client API.


The GenServer-defined behavior enforces the separation between client and server. An example of it is the fact that start_link/3 happens in the client, while init/1 is its counterpart callback that runs on the server.

The handle_call callback is a handler for synchronous calls while handle_cast...