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.

Reply via email to