Activity Stream Processing in Clojure
summary
Prototype using MongoDB with embedded interested-user lists fails under large fanouts, causing timeouts. Switching to Redis sets and sorted sets still chokes on runtime unions, so a Clojure daemon keeps feed heads in memory using Clojure atoms and threads and writes to Redis. Replacing build-time work with a Storm topology (spouts, bolts, Storm spouts bolts DRPC) moves union/score work off the hot path, cuts Redis storage by about 95%, and yields faster, more reliable feed builds at the cost of RAM and orchestration complexity.
AI-written summary · about
chapters (4)
- 0:00Start
- 27:59raw processing power receive tuples from streams
- 38:04easy parallelism
- 39:09mature, idiomatic library support
related talks
46mClojure Scaling the Event Stream
42m"Distributed stream processing in Ruby"
31mClojure at 4,000 msg/s-What We Learned, Loved, and Loathed
26mMetrics Stream Processing Using Riemann
35mApplying the paradigms of core.async in ClojureScript
48mTaming & Composing High Performance Stream-Oriented Processing Systems
37mDon't Shed a Tier for Me, Clojure
30mRealtime Collaboration with Clojure
