Realtime Collaboration with Clojure
summary
At Atlassian a realtime synchronization service uses Clojure/ClojureScript and core.async with Vert.x for websockets but custom components solve guarantees Vert.x lacks: a multiplexer that provides per-client fairness backpressure and strong close semantics and an ALF cluster over TCP tied into Hazelcast membership and a consistent hashing ring for routing nodes The system enforces at least once delivery with ordering, retries on failfast, is running as a beta service, and the team plans to open source the components once documented.
AI-written summary · about
chapters (12)
- 0:00Start
- 2:41Stateless web servers are
- 4:24Realtime collaboration
- 5:44Operational Transformation 101
- 9:55Vert.x
- 12:12Actors
- 13:07Akka and Pulsar
- 15:48Fairness
- 16:55Options Summary
- 23:23Aleph cluster + multiplexer
- 24:30What's next?
- 28:52References
related talks
34mDeveloping Asynchronous Polyglot Applications with vert.x
31mClojure at 4,000 msg/s-What We Learned, Loved, and Loathed
22mEvery Node.js app should have real-time collab features
43mClojure in live sports television
46mClojure Scaling the Event Stream
42mWhy Clojure?
41mActivity Stream Processing in Clojure
22mTear down this wall – rethink distributed systems
