Erlang Factory 2014 - That's 'Billion' with a 'B': Scaling to the Next Level at WhatsApp
Erlang SolutionsYouTube ↗
Further reading 4
What must happen before work can run in parallel? →Follow the point where workers have to wait. Adding workers helps only after the serial activity that feeds them can keep up.How far can one bottleneck spread? →Process isolation contains certain runtime failures. Decoupling services can contain a capacity problem. Identify what is still shared before relying on either boundary.Who coordinates access to the same record? →Designing a table around queries addresses how data is laid out. Routing operations to one process addresses how simultaneous work on a record is coordinated.Can healthy work continue when one component fails? →Process isolation and decoupling services address failure at different scales. Both limit propagation, but shared resources can still carry failure across a boundary.
Caption notes
WhatsApp uses Erlang processes, partitioning and asynchronous work to scale communication. A routing failure illustrates the operational costs of reconnecting a cluster.
Original passages · 6
the ability to isolate bottlenecks so that they don't spread through the systemall the access on a single record is going through a single processmessages they get served directly out of the cache without ever touching the file systemwe were running close to capacity on that system and the throughput actually went downability to isolate bottlenecks so that they don't spreadaccess on a single record is going through a single process