The Kafka protocol guide mentions that each request and response contains a
correlationId which is a user-supplied integer to match requests and
corresponding responses. However, when I look at the code in the class
AbstractResponse, we have a method defined as following:
public Send toSend(String destination, RequestHeader requestHeader) {
return toSend(destination, requestHeader.apiVersion(),
requestHeader.toResponseHeader());
}
So basically we are just using the requestHeader to generate the responseHeader
so doesn't this pretty much guarantees that the correlationId for the Request
and the Response would always be the same, or am I missing something?