Real-time dashboards powered by Elixir
The text discusses how Elixir and its web framework Phoenix were used to manage large real-time data sets across many channel topics for a real-time analytics product. It highlights the use of Erlang's OTP (Open Telecom Platform) and Phoenix's Channel / Presence features, which are designed for fault tolerant, concurrent systems. The text also covers how WebSockets were used to communicate between server and client, how dynamic supervision was implemented with Elixir's DynamicSupervisor feature, and how GenServer processes were used for information polling. Furthermore, it explains how process crashes were isolated, how subscription duplication across nodes was prevented using globally registered processes and process monitors, and how socket subscription state was kept server-side with Presence. The text concludes by discussing some technical considerations such as the eventually consistency of Presence, potential race conditions, zombie processes, soft real time, and resource management.
Company
Mux
Date published
Oct. 8, 2018
Author(s)
Jacqui Manzi
Word count
2260
Hacker News points
None found.
Language
English