The Road to Running Haskell at Facebook Scale
summary
Facebook runs Haxl, a Haskell DSL that replaces a 100K-line rule engine, and migrates that codebase into GHC over about 15 months of rollout. The system hits production workloads (originally ~100k req/s, design target ~1M), survives FFI surprises and GC edge cases, and gains 30% throughput on identical hardware. Engineering adds allocation limits, linker-based hot code loading, and upstream GHC fixes; the Haskell implementation proves practical at scale.
AI-written summary · about
chapters (43)
- 0:00Introduction
- 0:35Our World
- 2:03Rules
- 3:54Data fetching
- 4:20Latencysensitive
- 5:22Batch
- 6:33Tragedy struck
- 7:13We were failing to scale
- 9:10Examples
- 10:39Syntax
- 11:04Cord Design Challenge
- 11:50Should you write your own language
- 13:00Highschool
- 14:21Friends of You
- 15:20Shipping New Code
- 15:41Runtime Linker
- 16:37Artificial Experiments
- 16:58Time to Build
- 17:25Foreign Function Interface
- 18:53Safe vs Unsafe
- 20:42Balancing safe and unsafe calls
- 21:08Allocation limits
- 23:04Resource limits
- 23:16Semantic differences
- 23:29Regular expression differences
- 24:38Parse JSON
- 25:15The decision
- 25:33Switching to Haskell
- 26:09PostSwitching Performance
- 26:39Garbage Collector
- 26:57High Allocation
- 27:35Upstream
- 28:04Learning Haskell
- 29:34Conclusion
- 30:14Questions
- 30:59Software Engineering
- 32:05First in Production
- 33:07Technical Challenges
- 34:52Synchronicity
- 35:50Problems with tooling
- 36:59Resisting the temptation
- 38:48Haskell
- 41:23Rosetta Stone








