Loomio

Use Apache Thrift to publish web service API

JR Jason Robinson Public Seen by 28
JR

Poll Created Tue 11 Sep 2012 8:50AM

Use Apache Thrift to publish web service API Closed Fri 14 Sep 2012 8:43AM

"The Apache Thrift software framework, for scalable cross-language services development, combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, OCaml and Delphi and other languages."

http://thrift.apache.org/

Recently came across this framework. Sounds like a really good way of generalizing the data exchange of applications via web services.

I propose when the API code discussion and design goes forward that Apache Thrift be kept seriously in mind as a framework to publish the web services out. This would make it much easier for application developers to build on the web services.

Results

Results Option % of points Voters
Agree 0.0% 0  
Abstain 40.0% 2 CB JR
Disagree 60.0% 3 FS S SH
Block 0.0% 0  
Undecided 0% 47 ST MS TS AA HF BO JH DM GC JH F M EG G AX PP BB T DY RF

5 of 52 people have participated (9%)

FS

Florian Staudacher
Disagree
Tue 11 Sep 2012 3:43PM

seems like bringing a gun to a knife fight ;)
(just too much)

SH

Steven Hancock
Disagree
Wed 12 Sep 2012 5:17AM

Thrift is overkill, we just need a good JSON API with OAuth like Facebook, Twitter and GitHub.

S

SleepyDaddySoftware
Disagree
Thu 13 Sep 2012 11:05PM

I'm going to be writing mobile clients as soon as an API is out. I do NOT want to have to figure out how to properly parse some verbose payload format. Just use json or XML, standard formats (atom, activitystream, etc...)

JH

Jonne Haß Tue 11 Sep 2012 9:13AM

This doesn't looks to easy integrated into OAuth at all. The hard part about the API is the custom OAuth flow we need (tent.io is going roughly the same way, maybe we can join for a lib), not the boilerplate, that is just a bit annoying.

Also I don't feel good about requiring the clients to have a specific software dependency (or document their protocol), what if one wants to build a client where's not available? Thrift looks great if you build both, client and server, but for our use case the savings might not outweigh the troubles it introduces.

JR

Jason Robinson Tue 11 Sep 2012 10:56AM

I don't have such a comprehensive view of the D* core code so it could be this doesn't make sense :)

FS

Florian Staudacher Tue 11 Sep 2012 11:51AM

ok, from the looks of it, this is just a middleware that makes network communication transparent to the used data objects (kinda like ZeroC Ice or Google protobuf) ?

JR

Jason Robinson Tue 11 Sep 2012 1:56PM

Florian, yes.

FS

Florian Staudacher Tue 11 Sep 2012 3:42PM

If we'd build the API on thrift, every client would have to use our thrift-generated "lib" to communicate with it. I don't think we should even make the API so complicated as to require passing whole objects. The whole idea should be "as easy as possible".
Therefore introducing an abstraction layer seems like overkill. We should rather use existing methods like JSON and just simple HTTP POST/GET with oAuth...

ST

Sean Tilley Tue 11 Sep 2012 8:40PM

Honestly, from what I can tell, our currently internal API just leverages Backbone.js. Wouldn't it just be easier to leverage that instead?

Load More