Just noticed that most of the API response structs do not include the ApiVersion. This will make it hard for clients to determine how to handle responses once the APIs start getting updated (which is pretty much inevitable).

I'd propose we update the standard response envelope to include it

Response => ApiVersion CorrelationId ResponseMessage
  ApiVersion => int16
  CorrelationId => int32
  ResponseMessage => ...

Otherwise, it seems we must freeze the response formats forever.

Another thought is that the server should return the same version of the API that was requested (if a client sends in v1, then presumably it does know about any future versions...). How will this work? This seems to imply backwards compat for the APIs like Avro.

Thoughts?

-David

Reply via email to