Best practices and examples for versioning Thrift based services in a Service Oriented Architecture