cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tatu Saloranta <tsalora...@gmail.com>
Subject Re: AVRO client API
Date Fri, 18 Jun 2010 23:23:18 GMT
On Fri, Jun 18, 2010 at 2:12 PM, Eric Evans <eevans@rackspace.com> wrote:
> On Fri, 2010-06-18 at 11:00 -0700, Paul Brown wrote:
>> At the risk of asking about religion (but with no interest in hearing
>> about it), why Avro instead of something like plain-old-JSON over
>> HTTP?
>
> At the risk of having this thread veer off on a very long tangent...
>
> In a nutshell, we need a way of processing requests and responses over
> the network with typed data. You could of course put something together
> to do this using JSON and HTTP, but not without reimplementing another
> framework like Avro or Thrift (both of which can do JSON encoding, and
> both of which have an HTTP transport).

Not that I wanted to criticize choices, but do they actually allow use
of JSON as encoding?
Avro does use JSON for specifying schemas, but I wasn't aware of being
able to use it for encoding data.
Likewise with Thrift.

I think there's also important question of whether schemas/formatting
choice for payload should follow that of framing.
Avro/Thrift/PB seem reasonable for framing, use by protocol itself;
but for open payload it might make sense to allow different pluggable
formats.
Mostly because Avro/Thrift/PB are schema-bound formats which is not an
optimal choice for many use cases (but are fine for many others)
It is of course possible to just use byte[]/String as payload, handle
encoding and decoding on client end, and maybe that's how it should
be, for cases where strict schema doesn't work for use cases.

-+ Tatu +-

Mime
View raw message