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.