Hi all, I work at Terracotta and I think there are many things about Clojure that make it very interesting as a Terracotta target. The focus on immutable data structures is particularly fascinating and presents some unique challenges for Terracotta. One thing that we spend a lot of time focusing on how is to deal with minimizing broadcast of changes in collections like maps. I haven't decided yet whether the immutable data structure focus actually makes this harder or easier. I suspect it gives us the tools to do more but will require customization to take best advantage of it.
I'm a total clojure newb but I am currently rotating between reading Hoare's "Communicating Sequential Processes", Armstrong's Erlang book, and Stu's new Clojure beta book. I will emerge on the other side either as a guru or more likely hopelessly confused. :) At some future point, I'd love to work on clustering Clojure with Terracotta if only to learn more about it and understand it more deeply. From the discussion above, I think the key thing to keep in mind with Terracotta is that it's not a message-passing architecture; rather it's clustered memory (and notification). So it helps make changes in one node appear in all nodes. In that sense, it's very much targeted towards a shared-memory approach, not an actor/messaging approach. However, many people have built pipe and messaging abstractions with TC as a substrate so I think that's an interesting approach. Looking forward to learning more about it... Alex On Nov 26, 6:21 am, dokondr <[EMAIL PROTECTED]> wrote: > Rich, > I readily acknowledge the diversity of message passing frameworks for > Java. > Notwithstanding, I think it makes sense to think about distributed > message passing mechanism inherent to Clojure language, like the one > Erlang has. > It is Erlang abstraction of light-weight processes and extreme ease of > reliable, synchronized communication between these processes running > on one or > many distributed 'nodes', it is all that that makes Erlang so great > for real world distributed tasks! > Clojure could have become a great next step in this direction! > > Dima > > On Nov 25, 4:11 pm, Rich Hickey <[EMAIL PROTECTED]> wrote: > > > On Nov 24, 6:41 pm, dokondr <[EMAIL PROTECTED]> wrote: > > > > Any ideas how Clojure can be used for distributed concurrent > > > applications ? > > > To my mind it should be possible to implement in Clojure mechanism > > > similar to Erlang light-weight processes running on distributed > > > 'nodes' that can be addressed by 'ports' to send them 'commands'. > > > How this can be done with Clojure 'agents'? > > > An obvious solution would be to create an 'agent proxy' on every node > > > that will maintain a list of its agents and will forward (send ...) > > > messages to other nodes, as well as receive messages addressed to its > > > own agents from remote nodes and then deliver these messages to > > > correct agents. > > > Addressing scheme and message protocols should be developed as well. > > > Other ways to provide for communication between nodes? > > > There's JMS: > > >http://en.wikipedia.org/wiki/Java_Message_Servicehttps://mq.dev.java.... > > > XMPP: > > >http://en.wikipedia.org/wiki/Xmpphttp://www.igniterealtime.org/projec... > > > JXTA/Shoal: > > >http://en.wikipedia.org/wiki/Jxtahttps://shoal.dev.java.net/ > > > JINI: > > >http://en.wikipedia.org/wiki/Jinihttp://incubator.apache.org/projects... > > > DHTs like Pastry: > > >http://freepastry.org/ > > > JGroups: > > >http://www.jgroups.org/javagroupsnew/docs/index.html > > > Terracotta: > > >http://www.terracotta.org > > > Jinterface: > > >http://www.erlang.org/doc/apps/jinterface/ > > > NetKernel: > > >http://www.1060.org/ > > > and more. All useful from Clojure. > > > Given the diversity, sophistication, maturity, interoperability, > > robustness etc of these options, it's unlikely I'm going to fiddle > > around with some language-specific solution. > > > That said, I have been thinking about putting a simple wrapper API > > around queues that would work both locally and over something like > > JMS. > > > Rich --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---
