Reinventing Haxl: Efficient, Concurrent and Concise Data Access
summary
Reimplements Haxl-style request fusion in Clojure as Muse, a small library that builds an abstract request tree and uses core.async to run it with implicit concurrency, deduplication and batching. Concrete result: rendering a timeline of 20 IDs becomes three execution stages (fetch IDs, fetch posts in parallel, fetch users and scores in parallel) instead of 20× sequential HTTP calls. Requires side‑effect‑free reads, keeps results in memory, and supports batched fetch APIs.
AI-written summary · about
chapters (21)
- 0:00Intro
- 1:12About Me
- 2:21Agenda
- 2:42Multi-Level Data
- 5:15Simplest "Fetch"
- 9:13core.async & dedup
- 10:21Optimized "Fetch"
- 11:19Known Solutions
- 13:43What About Clojure?
- 14:31Protocols
- 15:40Latency
- 18:37DataSource
- 19:41Operations Tree
- 21:08Nested Data
- 22:35Runner
- 23:33Common Friends
- 26:03Friends Of Friends
- 27:29Batched Source
- 28:28What Can It Do For You?
- 31:46Known Restrictions
- 34:45Future Plans
related talks
33mHaxl: A Big Hammer for Concurrency
32mFrameworkless Web Development in Clojure
41mWeb Programming with Hoplon
27mThe Functional Final Frontier
32mUI, Pure and Simple
35mClojureScript & User Interfaces: Simplicity yields Possibilities
42mSpecter: overcome your fear of nested Clojure data
43mCaching half a billion user transactions
