Building Scalable Real-time Systems in Elixir

Beginner, Intermediate
Stephen Bussey
Grant Powell

Users of software have an increased expectation for real-time features, and these features often map very well to Erlang OTP and Phoenix Channels. This course demonstrates several different strategies for how to build systems using Channels, and other techniques, that avoid performance bottlenecks and maintenance problems. The course is structured around lecture followed by coding, breaking the course into several digestible modules.

Real-world examples are used to demonstrate concepts and allows for attendees to work together to gain understanding of real-time tools, strategies, and pitfalls. In particular the following topics are discussed in detail: Phoenix Channels, Publisher/Subscriber Pattern, Presence. Various aspects of scalability will be discussed: performance, maintenance, cost, data integrity. Focusing on scalability and demonstrating various types of problems allows for professional developers to take key learnings back to their companies with increased confidence and knowledge.

The material in this course is presented from a variety of perspectives. The most basic is simple understanding of the topic and how to use different tools to build a system. Going deeper, system failures are discussed and the impact of those failures are considered with respect to the real-time nature of the system. Finally, solutions to various real-time system problems that have appeared in production are discussed.

This class taught: Tuesday