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