Elixir's object-oriented layer is based on message passing between processes like Erlang. It uses GenServer to implement objects as isolated processes that communicate asynchronously via casts or synchronously via calls. GenServer provides callbacks for implementing the object's behavior and encapsulating its state within the process.
Related topics: