oneby-wang commented on code in PR #24714:
URL: https://github.com/apache/pulsar/pull/24714#discussion_r2331753787


##########
pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/AuthorizationService.java:
##########
@@ -219,7 +219,7 @@ public CompletableFuture<Boolean> canProduceAsync(TopicName 
topicName, String ro
         if (!this.conf.isAuthorizationEnabled()) {
             return CompletableFuture.completedFuture(true);
         }
-        return provider.isSuperUser(role, authenticationData, 
conf).thenComposeAsync(isSuperUser -> {
+        return provider.isSuperUser(role, authenticationData, 
conf).thenCompose(isSuperUser -> {

Review Comment:
   I would assume that the implementer of the interface should implement the 
async semantics, rather than using the thenComposeAsync method to ensure that 
custom methods without async implementation can run asynchronously.
   
https://github.com/apache/pulsar/blob/c7dff63e8d38bfdc7ac881b5fec8c1b486346e6e/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/authorization/AuthorizationProvider.java#L112-L113
   
   My opinion: it is the duty of implementer implement the async semantics to 
make caller simpler, rather than leaving it to the caller to handle. At least 
currently, both implementations in Pulsar are non-blocking, the async operation 
is called by MetaCache executor.
   
https://github.com/apache/pulsar/blob/c7dff63e8d38bfdc7ac881b5fec8c1b486346e6e/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/resources/NamespaceResources.java#L136-L138
   
   If we need to consider such an assumption, then some places in the project 
may need to be replaced with thenComposeAsync method.
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to