Building a Messaging and Service Protocol
This talk presents the architecture behind a new backend for a game. The backend exhibits stateful design, modular components, and supports many concurrent users. Communication is built atop Cowboy websockets and it is pluggable.
At its core, the backend is a chat server. However, entities on the server can be users or services. Services are essentially chat bots with programmable capabilities. API requests to the server resemble chat messages to services so the client is easy to program. Adding new functionality is simply a matter of modifying an existing service or spinning up a new one with a rebar template.
The services themselves modify the user’s state in memory as well as on the database so the entire flow requires very few database reads.
Talk objectives: This talk aims to showcase Erlang usage in the mobile games department. It is a case study talk at its core and presents a novel architecture that is easy to understand and even easier to develop for.
Target audience: The talk appeals to individuals early on in the development process of a new Erlang project or curious about actual industry usage of Erlang.
Jeremy Ong Senior Engineer @ Quark Games
Jeremy is a senior engineer and game designer at Quark Games, a mobile game studio. He enjoys thinking about distributed systems, concurrent algorithms, and functional programming.