Note that there are some explanatory texts on larger screens.

plurals
  1. POFastest reliable way for Clojure (Java) and Ruby apps to communicate
    text
    copied!<p>We have cloud-hosted (RackSpace cloud) Ruby and Java apps that will interact as follows:</p> <ol> <li>Ruby app sends a request to Java app. Request consists of map structure containing strings, integers, other maps, and lists (analogous to JSON).</li> <li>Java app analyzes data and sends reply to Ruby App.</li> </ol> <p>We are interested in evaluating both messaging formats (JSON, <a href="http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking" rel="nofollow noreferrer">Buffer Protocols</a>, <a href="http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking" rel="nofollow noreferrer">Thrift</a>, etc.) as well as message transmission channels/techniques (sockets, message queues, RPC, REST, SOAP, etc.)</p> <p>Our criteria: </p> <ol> <li>Short round-trip time.</li> <li>Low round-trip-time standard deviation. (We understand that garbage collection pauses and network usage spikes can affect this value).</li> <li>High availability.</li> <li>Scalability (we may want to have multiple instances of Ruby and Java app exchanging point-to-point messages in the future).</li> <li>Ease of debugging and profiling.</li> <li>Good documentation and community support.</li> <li>Bonus points for Clojure support.</li> <li>Good dynamic language support.</li> </ol> <p><strong>What combination of message format and transmission method would you recommend? Why?</strong></p> <p>I've gathered here some materials we have already collected for review:</p> <ul> <li><a href="http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking" rel="nofollow noreferrer">Comparison of various java serialization options</a></li> <li><a href="http://stuartsierra.com/2008/07/10/thrift-vs-protocol-buffers" rel="nofollow noreferrer">Comparison of Thrift and Protocol Buffers (old)</a></li> <li><a href="http://johnsofteng.wordpress.com/2010/03/20/google-protocol-buffers-and-other-data-interchange-formats/" rel="nofollow noreferrer">Comparison of various data interchange formats</a></li> <li><a href="https://stackoverflow.com/questions/69316/biggest-differences-of-thrift-vs-protocol-buffers">Comparison of Thrift and Protocol Buffers</a></li> <li><a href="http://steve.vinoski.net/blog/2008/07/13/protocol-buffers-leaky-rpc/" rel="nofollow noreferrer">Fallacies of Protocol Buffers RPC features</a></li> <li><a href="http://www.openamq.org/doc:amqp-background" rel="nofollow noreferrer">Discussion of RPC in the context of AMQP (Message-Queueing)</a></li> <li><a href="http://www.deakin.edu.au/scitech/sit/dsapp/archive/techreport/TR-C95-20.pdf" rel="nofollow noreferrer">Comparison of RPC and message-passing in distributed systems (pdf)</a></li> <li><a href="http://sbdevel.wordpress.com/2009/12/17/the-case-rpc-vs-messaging/" rel="nofollow noreferrer">Criticism of RPC from perspective of message-passing fan</a></li> <li><a href="http://www.igvita.com/2010/02/16/data-serialization-rpc-with-avro-ruby/" rel="nofollow noreferrer">Overview of Avro from Ruby programmer perspective</a></li> <li><a href="http://www.igvita.com/2007/11/30/ruby-web-services-with-facebooks-thrift/" rel="nofollow noreferrer">Overview of Thrift from Ruby programmer perspective</a></li> <li><a href="http://jnb.ociweb.com/jnb/jnbJun2009.html" rel="nofollow noreferrer">Overview of Thrift from Java programmer perspective</a></li> <li><a href="http://msgpack.wordpress.com/2010/05/04/introduction-to-messagepack-rpc/" rel="nofollow noreferrer">Introduction to MessagePack</a></li> <li><a href="https://github.com/blog/531-introducing-bert-and-bert-rpc" rel="nofollow noreferrer">Introduction to BERT by dynamic language enthusiast</a></li> <li><a href="http://wiki.secondlife.com/wiki/Message_Queue_Evaluation_Notes" rel="nofollow noreferrer">Message Queue Evaluation Notes</a></li> <li><a href="http://antoniogarrote.wordpress.com/2010/09/08/zeromq-and-clojure-a-brief-introduction/" rel="nofollow noreferrer">ZeroMQ and Clojure</a></li> </ul>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload