An Alternative To JSON Responses: Argo in WhatsApp
summary
WhatsApp replaces JSON responses with a GraphQL-aware binary format called Argo binary serialization, implementing server encoders and client decoders (Erlang, Kotlin, Swift ports) plus build-time wire types baked into the app. Global mobile rollout uses operation-level allowlists and a kill switch that retracts in ~40 minutes. Measured wins include about 27% average wire savings, up to ~90% on empty structures and small requests, and a compact client Argo store of ~28 KB per app.
AI-written summary · about
chapters (11)
- 0:00Introduction and motivation
- 3:53WhatsApp protocol background
- 9:25What is Argo?
- 10:28Implementation at WhatsApp
- 11:12Rollout strategy and rollback
- 13:18Results and savings achieved
- 15:46Error detection and monitoring
- 16:47Future improvements
- 18:12Costs and trade-offs
- 20:18Key takeaways and conclusion
- 22:29Q&A session
related talks
36mArgo Designing a Compact and Compressible Binary Serialization Format for GraphQL
34mPerformance by Construction
32mGraphQL-Anywhere - How GraphQL can improve your work across all of your stack
52mOur ongoing journey from REST to GraphQL on Android
37mUsing small data in the client instead of big data in the cloud
28mGraphQL for mobile developers
37mGraphQL on Android is here!
39mOur ongoing journey from REST to GraphQL on Android
