Return-Path: Delivered-To: apmail-cassandra-user-archive@www.apache.org Received: (qmail 66020 invoked from network); 30 Jun 2010 00:22:20 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 30 Jun 2010 00:22:20 -0000 Received: (qmail 79415 invoked by uid 500); 30 Jun 2010 00:22:19 -0000 Delivered-To: apmail-cassandra-user-archive@cassandra.apache.org Received: (qmail 79259 invoked by uid 500); 30 Jun 2010 00:22:18 -0000 Mailing-List: contact user-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@cassandra.apache.org Delivered-To: mailing list user@cassandra.apache.org Received: (qmail 79251 invoked by uid 99); 30 Jun 2010 00:22:18 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jun 2010 00:22:18 +0000 X-ASF-Spam-Status: No, hits=2.9 required=10.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (nike.apache.org: local policy) Received: from [209.85.160.44] (HELO mail-pw0-f44.google.com) (209.85.160.44) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 30 Jun 2010 00:22:10 +0000 Received: by pwj2 with SMTP id 2so33881pwj.31 for ; Tue, 29 Jun 2010 17:21:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.142.158.12 with SMTP id g12mr155605wfe.17.1277857308581; Tue, 29 Jun 2010 17:21:48 -0700 (PDT) Received: by 10.142.170.9 with HTTP; Tue, 29 Jun 2010 17:21:48 -0700 (PDT) In-Reply-To: References: <5A4D71ACC2708E4BB1BD7B6F87E51C6B07FA3B27@sccorpmail01.mygazoo.com> Date: Tue, 29 Jun 2010 17:21:48 -0700 Message-ID: Subject: Re: Cassandra and Thrift on the Server Side From: Mike Malone To: user@cassandra.apache.org Content-Type: multipart/alternative; boundary=000e0cd184fcf3a930048a3456f5 X-Virus-Checked: Checked by ClamAV on apache.org --000e0cd184fcf3a930048a3456f5 Content-Type: text/plain; charset=ISO-8859-1 > > Still, to Clint's point, everyone knows how to make an HTTP request. If you > want a cassandra client running on, let's say, an iPhone for some reason, a > REST API is going to be a lot more straight forward to implement. There's no reason an HTTP service would have to live inside the Cassandra project though, right... we're just talking about a proxy that translates from one protocol (HTTP) to another (thrift / avro). Shouldn't be too hard to implement. It could even be open sourced, and referenced from the Cassandra website, maybe even endorsed by the Cassandra project. High level though I think it's important to resist the temptation to build things in that could just as easily live separately and develop orthogonally. I feel the same way about access control... I think it's more natural and flexible for that to be handled in an application rather than in the database... If your particular requirements end up pushing access control back to the data store tier than it should be fairly easy to wrap the Cassandra service at either the Java level (by subclassing) or the OS level (by having Cassandra listen only on localhost and have an authenticating / authorizing proxy listen for remote requests & forward). But it looks like that decision has already been made. Mike --000e0cd184fcf3a930048a3456f5 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Still, to Clint&= #39;s point, everyone knows how to make an HTTP request. If you want a cass= andra client running on, let's say, an iPhone for some reason, a REST A= PI is going to be a lot more straight forward to implement.

There's no reason an HTTP service would have to liv= e inside the Cassandra project though, right... we're just talking abou= t a proxy that translates from one protocol (HTTP) to another (thrift / avr= o). Shouldn't be too hard to implement. It could even be open sourced, = and referenced from the Cassandra website, maybe even endorsed by the Cassa= ndra project. High level though I think it's important to resist the te= mptation to build things in that could just as easily live separately and d= evelop orthogonally.

I feel the same way about access control... I think it&= #39;s more natural and flexible for that to be handled in an application ra= ther than in the database... If your particular requirements end up pushing= access control back to the data store tier than it should be fairly easy t= o wrap the Cassandra service at either the Java level (by subclassing) or t= he OS level (by having Cassandra listen only on localhost and have an authe= nticating / authorizing proxy listen for remote requests & forward). Bu= t it looks like that decision has already been made.

Mike
--000e0cd184fcf3a930048a3456f5--