To Clojure and back: writing and rewriting in Ruby
summary
Team chooses Datomic and Clojure for immutable data and point‑in‑time queries, hits long boots and huge memory, then rewrites into a single Ruby monolith to cut complexity. Rewrite takes four months, converting 8300 lines of Clojure + 3000 Ruby into 8700 lines of Ruby and yields about 50–100% faster responses. Key tactics: collapse services, prefer value objects and manager objects, implement data‑model fixes in Postgres rather than exotic stores, avoid distributed microservices until needed.
AI-written summary · about
chapters (18)
- 0:00Start
- 5:19Functional programming
- 6:31refactoring is simpler
- 13:24bad architectural assumptions
- 13:44separate deployments = more overhead
- 14:02death by a thousand papercuts
- 16:14comically terse documentation
- 18:05feeling frustrated
- 18:59strange feeling of culture shock
- 21:30your service boundaries should mimic your team boundaries
- 23:22reconciliation
- 26:43"value" object
- 27:20more aware of how state flows
- 27:52controller: handles input model: handles persistence manager: handles state
- 29:461. Clojure is worth learning! Seriously
- 31:23avoid working on problems that don't matter
- 31:39exhaust the tools you know before reaching for a new one
- 32:09code should make you happy
related talks
40mclojure is my favourite ruby
38mA Rubyist in Clojure-land
41mClojure for Ruby Programmers
39mTransforming Software Evolution: Lessons from 10 Years of Clojure in Production
45mHow Programming in Other Languages Made my Ruby Code Better
37mCache is King: Get the Most Bang for Your Buck From Ruby
26mImmutable Ruby
40mMake Ruby Functional Again!
