Evan Weaver wrote:
I was initially enthusiastic about a HTTP/JSON interface along vaguely
similar lines, but I've changed my mind. It still might make sense as
a stand-alone package that you could run on bastions in the cluster.
Why did you change your mind?
Per-language clients based on the Thrift (or someday Avro) bindings
seem like the way to go. No generated RPC will ever be idiomatic, and
REST has its own impedance mismatches.
I wonder if they're as bad as the current mismatch RPC induces. And I
wonder if Avro is a good fit; it seems to need schema to handle
unexpected data.
Maybe can you describe you use case?
I have a few.
Operations can query a Cassandra service with curl. Testers aren't
required need to have thrift/java/ruby/whatever. HTTP is really good at
long haul communications. HTTP supports content negotiation so your
wireshark doesn't need a plugin (a la protobufs) to see the data. REST
maps well onto data, and I'd argue it maps better than RPC.
Basically when you get past a developer sandbox, working via language
bindings, binary, and rpc comes with a lot of suck.
Bill