Related topics

Google releases serialization scheme

Pedantic programmers hold love-in

It’s All About Makin’ That R-P-C

The protocol buffer definition language allows you to specify RPC servers that take protocol messages as input and output. The compiler will generate some code to help you with this RPC, but it will not give you an actual server. Google’s engineering team, overgrown with developers from academia, has left this as an exercise to the reader. This isn’t so much a shortcoming as it is another opportunity for you, the developer, to swing your dick around. You get to write a multithreaded RPC system with connection pooling and load balancing and all that shit.

Think of how scalable that shit’s gonna be. You’ll put a real hurt on all that imaginary load your system is taking. Then, you get to go home and fuck the prom queen.

If you really like the protocol buffer idea but aren’t so hot on writing your own RPC system, there is relief. About a year ago, Facebook released a project called Thrift that does essentially the same thing as protocol buffers. Thrift failed to gain heavy traction because its name isn’t terribly cool, nor does it give way to an acronym that contains the letters J or X. Nonetheless, Thrift does include a variety of RPC implementations.

Interestingly, one of Facebook’s engineers on the Thrift project, Mark Slee, worked at Google before his arrival at Facebook. It’s therefore unsurprising that Thrift and protocol buffers share many design decisions. Unfortunately, because of heavy inbreeding within Silicon Valley engineering teams, the two products, although functionally similar, are not compatible with one another.

If you want to do it, writing your own RPC layer isn’t a herculean task. I managed to hack something together on top of Tomcat in a couple of hours. It didn’t make me feel as manly as I hoped it would, so to supplement, I suggest you have two cigars, a glass of Maker’s Mark, no ice, and a copy of The Godfather trilogy within reach.

Alright, Wrap It Up, Windbag

Since the release of protocol buffers, the tech blogosphere (long regarded as the dominant scholarly force of the internet) has been chattering. Of course, none of these bloggers have actually used protocol buffers in any code that matters to anybody, but as you know, that is no reason to prevent the offering of a strong opinion on the matter. If you work with a pretentious little shit, you know this phenomenon all too well.

The Web 2.0 startup circle, being mostly composed of pretentious little shits, is likely to adopt protocol buffers as a first-class data interchange format. You, the legitimate developer at a corporation that actually earns money, have nothing to worry about from this uprising. These trends rarely escape from the echo chamber.

Considering everything about protocol buffers, the bottom line is this: you can continue to do the least possible amount of work and make the most possible amount of money just as you are doing. This technology is unlikely to move into widespread use, but if it does, you’re looking at a loss of 3 to 4 YouTube hours to learn enough of it so that you don’t look like an idiot at the next team meeting. If this sort of thing does suit your fancy, it provides a few good opportunities to passive-aggressively flex your nuts to co-workers. ®

Ted Dziuba is a co-founder at You can read his regular Reg column, Fail and You, every other Monday.

Sponsored: Driving business with continuous operational intelligence