An incomplete guide to Facebook thrift
avabodh.com
avabodh.com
Larger companies like Evernote (https://dev.evernote.com/doc/reference/) have shown that Thrift can be operated successfully at an enormous scale.
Facebook also re-forked re-open-sourced Apache Thrift (originally a Facebook project) as fbthrift: https://github.com/facebook/fbthrift
I disagree. It's best to, but if someone wants to hack together something with python/requests it's not hard to use the returned dictionary. Even with Java, we'll frequently do some requests to get representative payloads, generate models, clean them up and we're on our way. Or you could just use Map<String, Object>.
[1] http://www.hdfgroup.org/HDF5/ [2] http://www.pytables.org/moin
http://packetbeat.com/docs/configuration.html#thrift-configu...
Which makes debugging Thrift-based architectures significantly easier.
I was sold on Thrift but I think the popularity of REST made people take some weird decisions.
Internal services talking to each other using REST seemed like a bit too much, a place, where I though services like Thrift would have worked so well.
We personally decided to stick with HTTP (even though Thrift would be "superior") since tools are numerous and simple. It's hard to beat curl and a browser. We also found that services end up used in ways that are hard to predict, especially in bash-written tools and the like. Thrift is a barrier to entry.
Additionally, you could do HTTP+Thrift. It's possible, it works, but you lose some of the overhead benefits of Thrift at that point (IMO). In my experience, fulfilling a Thrift request with a Thrift server has tighter latencies at much lower CPU usage for similar request loads.
I like working HTTP but certainly tools like thrift have there. LinkedIn is all about http://rest.li/ for our services though I've been working with DropWizard on a side project and really love it.