Thanks Stuart for your answer, it is very helpfull. Would you choose
Clojure again ?

2015-07-19 17:13 GMT+02:00 Stuart Sierra <the.stuart.sie...@gmail.com>:

> This is an old thread, but it showed up in my Google Groups so I figured I
> would give an answer.
>
> I have worked on fairly large (10-50 machines) distributed systems written
> entirely in Clojure.
>
> The language itself doesn't provide an explicit mechanism for
> communication between machines, so you just have to pick an existing tool
> or technique that suits your application architecture. There are many
> possibilities to choose from, all with different strengths and weaknesses:
>
> 1. Direct connections between nodes, e.g. HTTP, raw sockets, HornetQ
> 2. Message broker, e.g. ActiveMQ, RabbitMQ
> 3. Distributed shared memory, e.g. ZooKeeper, Hazelcast, memcached
> 4. Distributed job control, e.g. Hadoop, Storm
>
> You can end up implementing something that looks very much like the Actor
> Model using these components. But you have other options as well.
>
> Where Clojure helps you in designing these systems is its focus on
> generic, immutable data structures and pure functions.
>
> Clojure's data structures are trivially serializable (EDN, Transit,
> Fressian). When all the data in your application can be represented by
> Clojure's generic data structures, it is easy to distribute work or data
> across multiple machines.
>
> When functions are stateless, it is less important "where" they are
> executed. When functions (or declarative expressions, e.g. database
> queries) can be expressed as data structures, they are easier to compose
> and distribute.
>
> –S
>
>
> On Wednesday, July 3, 2013, Hussein B. wrote:
>
>> I read recently on the internet that Clojure concurrency tools make it
>> easy to implement a highly concurrent system but on a single machine.
>>
>> But how to implement a highly concurrent system that runs on a multiple
>> machines?
>>
>> Erlang, Elixir and Scala have the Actors model.
>>
>  --
> 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 a topic in the
> Google Groups "Clojure" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/clojure/4GRJVxctlU0/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Pozdrawiam,
Mateusz Górski

-- 
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