Hi Lawrence, I think Clojure's concurrency primitives are more narrowly scoped than that.
Clojure's most significant concurrency features (Atoms, Refs, Vars, Agents) are mostly about managing changes to *shared, mutable state* via pure functions. Hystrix is about managing code with unpredictable behavior and timing, e.g. client libraries which do blocking I/O and other side effects. When I do presentations or workshops about Clojure, I always make a point to say that Clojure does not try to solve **all** problems related to concurrency and parallelism. You still need things like Java thread pools. Clojure was designed as a hosted language precisely so that it can take advantage of the rich set of concurrency tools available on the JVM platform, including frameworks like Hystrix. Clojure makes it easier to write programs which manage their state correctly. Hystrix makes it easier to write programs which manage side-effect-heavy libraries correctly. Together, they make a pretty good combination. –S On Friday, July 24, 2015 at 1:10:10 PM UTC-4, Lawrence Krubner wrote: > > I find this very interesting: > > http://blog.josephwilk.net/clojure/building-clojure-services-at-scale.html > > "[Using Hystrix comes at a cost:] We cannot use Clojure’s concurrency > primitives (futures/promises/agents)." > > That is fascinating to think that at some point Clojure's concurrency > primitives are not enough, and so we need to give up on them and move to a > Java library. I am aware that Netflix is dealing with unusual scale, but > what is the point of Clojure if it doesn't automate exactly these issues? I > don't mean this as an attack on Clojure, but rather, I'm curious why issues > of thread pool management and circuit breakers don't get baked in to a > deeper level of Clojure? After all, that is the reason why people use > Clojure, yes? The argument for Clojure is exactly that it automates so much > of the work of dealing with concurrency, right? > > Am I being stupid? > > > > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.