Aaron Cruz // Elixir in Real-Time: Race Coordination
Contributors
Category
Aaron Cruz shared three lessons from building Foot Race, a real-time running app where runners get matched globally and race together, at Alchemy Conf 2025.
Cruz started with React Native and Phoenix, initially over-engineering with websockets, Go coordinate servers, and RabbitMQ, before deleting all of it and taking a completely different approach.
The talk covers a pattern for separating concerns that made testing dramatically simpler, an unconventional architectural decision about handling race processes that deliberately creates a bottleneck (with a surprising trade-off), and a practical solution to one of the hardest problems in Elixir: testing processes without async test conflicts.
One detail caught Cruz off guard during development: how chats can be “reopened” when already open. Another surprised him about how async: true actually works in ExUnit.