avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doug Cutting <cutt...@apache.org>
Subject Re: RPC for java/python with rest support, HTML monitoring and goodies
Date Mon, 03 May 2010 17:20:22 GMT
Ran Tavory wrote:
> Here's my set of requirements:

It seems to me that Avro satisfies most of these.  I'll comment below.

>    1. Easy and intuitive IDL. No serial numbers, no manual versioning,
>       simple... avro is a good example for this.
>    2. Works with Java and Python

Check.

>    3. Supports both fast binary prorocol, as well as HTTP based restful
>       style. I'd like to be able to use it for both backend-to-backend
>       communication (java-java or python-java) as well as
>       frontend-to-backend communication (javascript to java).
>    4. The rest support needs to include &param=value input as get/post
>       requests (configurable per request) and output in three possible
>       formats: json, jsonp, XML.

Avro does not currently support url-encoded query-string parameters.  A 
Java servlet that does this could be added without too much difficulty. 
  Alternately, one might develop an Avro library in Javascript that 
could make binary requests.

One could also easily define an XML-encoding for Avro data.  However 
implementing it and maintaining in all languages might be difficult.  So 
I prefer to consider anything other than the binary encoding as optional 
for implementations.  Thus applications should generally use the binary 
encoding to ensure the greatest intercompatibility.

A JSON-encoding of Avro data is specified that could perhaps also be 
used to implement a jsonp-style approach.

>    5. Compact, fast, backward compatible, easy to upgrade etc...

Check.

>    6. Provides some nice monitoring interfaces such as: JMX, web page
>       status reports (e.g. packets in, packets out, error rate etc)

Avro Java has a statistics plugin.  This could be enhanced if there were 
particular values you require.

http://hadoop.apache.org/avro/docs/current/api/java/org/apache/avro/ipc/stats/package-summary.html

>    7. Ops friendly... no need to take the whole site down to release new
>       versions
> 
> ... other goodies are welcome...
> 
> Is there something out there?
> So far I've looked at thrift and avro and they are both nice in some 
> ways, but don't check all my list.

Doug


Mime
View raw message