Jason Gustafson created KAFKA-12232: ---------------------------------------
Summary: Distinguish API scope by broker/controller Key: KAFKA-12232 URL: https://issues.apache.org/jira/browse/KAFKA-12232 Project: Kafka Issue Type: Improvement Reporter: Jason Gustafson After KIP-500, not all APIs will be available on all listeners. Specifically, there are controller-only APIs which are only accessible on the controller listener (e.g. the Raft APIs). In general, we have three API scopes: client: must be exposed on client listener broker: must be exposed on inter-broker listener controller: must be exposed on controller listener These categories are not mutually exclusive. The `Fetch` API is required on all listeners as an example, so we need a way to represent the scope as a set in `ApiKeys`. We should also put some thought into how this scope is reflected through the ApiVersions API. I think it makes sense to only advertise APIs that can be handled. For example, if the controller does not have a handler for the `FindCoordinator` API, then it doesn't make sense to advertise it. Potentially we could be even more restrictive when it comes to the inter-broker APIs. For example, we might not need to advertise `WriteTxnMarkers` on client-only listeners since a client should never use this API. Alternatively, we can make it simple and just identify APIs by controller, broker, or both. -- This message was sent by Atlassian Jira (v8.3.4#803005)