On Mon, 18 Jan 2010 10:48:41 -0800 Tatu Saloranta <tsalora...@gmail.com> wrote:
TS> 2010/1/15 Ted Zlatanov <t...@lifelogs.com>: >> I could provide a way to plug in your own API to Cassandra so anyone >> could write a full API using PB, HTTP, or whatever protocol they like. >> Underneath it could invoke the Thrift interface methods locally and >> relay their results out. This would be really nice but again I doubt it >> would be included in the core. TS> I would find it useful to have such an alternative interface. I have TS> nothing against Thrift, but there are cases where simpler interface TS> would be useful. And in those cases it would be fine to have this as TS> sort of adapter. TS> For what it's worth, I think it would be nice to keep the two TS> (transport over http, contents as json) separate, if possible. I like TS> JSON, but there are use cases where other formats are better. TS> For numeric data, for example, binary formats are more compact. I've got three (me, Tatu, Philip) in favor of such an interface. Jonathan, Eric, anyone else, WDYT? My proposal is as follows: - provide an IPluggableAPI interface; classes that implement it are essentially standalone Cassandra servers. Maybe this can just parallel Thread and implement Runnable. - enable the users to specify which IPluggableAPI they want and provide instantiation options (port, connection limit, etc.) - write a simple HTTPPluggableAPI, which provides a web server and accepts POST requests. The exact path and option spec can be worked out later. The input and output formats can be specified with a query parameter; at least JSON and XML should be supported. Ted