[ 
https://issues.apache.org/jira/browse/KAFKA-12232?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jason Gustafson resolved KAFKA-12232.
-------------------------------------
    Resolution: Duplicate

> 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
>            Priority: Major
>
> 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)

Reply via email to