Literally guessing here, but does XDR support backwards compatibility with updated definitions? Protobufs let you add a property to a definition as long as it's at the end of the object definition, yet objects encoded in the old definition can still be decoded with it and vice versa.
> We use XDR - RFC 4506 and RPCv2 - RFC 1831 to communicate between our servers.
I see the appeal in using the same format everywhere, but it seems like they'd have a easier time using something with more mindshare, like Protocol Buffers, or even Thrift or Cap'n Proto.
All of those have Rust implementations, for instance, so you wouldn't have to implement your own parser.
OkCupid is over a decade old. XDR was pretty good back when people started writing our services.
My goal here isn't to migrate our RPC system... yet. My goal is to stand up Rust services in production. I need to be able to issue calls between services and thus, I need it to speak XDR. Migrating your RPC system in a production website is a non-trivial task.
I've done some investigation into switching to something like flatbuffers or cap'n proto. That's a project for another day though.