Argo Designing a Compact and Compressible Binary Serialization Format for GraphQL
summary
Argo is a GraphQL-specific binary format that builds a one-time type descriptor from schema+query, encodes values with protobuf-style varints, zigzag integers, UTF‑8 strings and IEEE‑754 floats, and adds deduplication tables and block layouts to help compressors. A reference implementation and spec exist and the format yields concrete results: Argo reduces uncompressed sizes by 50–80% versus JSON and is 5–15% smaller after compression, showing the design works in practice.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:02Why design a new format
- 4:54Design goals for Argo
- 8:10Leveraging GraphQL context
- 11:22Type descriptors explained
- 14:54Encoding and decoding process
- 18:08Binary encodings for types
- 23:46Handling objects and nullables
- 25:10Adding binary data support
- 26:13Deduplicating repeated values
- 30:09Making messages compressible
- 33:19Performance results
- 34:22Key takeaways and conclusion
related talks
29mAn Alternative To JSON Responses: Argo in WhatsApp
20mService-to-service GraphQL: The New Sweet Spot!
35mReliable Supergraph management with the Apollo GraphOS Operator & Artifacts
13mAhead-of-Time (AOT) Techniques Help You Write GraphQL Libraries!
01h 02mApache Arrow: High-Performance Columnar Data Framework
25mOptimizing GraphQL Applications
22mGraphQL for Everyone
32mGraphQL Future
