Does ClientLifecycleEventListener block other extensions

Hi! Does the an event Listener, which implements the ClientLifecycleEventListener block processing or does it run asynchronously?
My problem:
I have an extension with a SimpleAuthentificator, which authenticates the certificates in the onConnect() method, this extension has the highest priority.

Then a second extension with an Authorizer, which implements PublishInboundInterceptor and SubscriptionAuthorizer, which prohibits/allows subscribing to a topic.

A third extension is to implement an ClientLifecycleEventListener, which has another task when a connection is successfully established, it overrides
onAuthenticationSuccessful()
Will this 3. extension with the ClientLifecycleEventListener block further extensions, especially the 2. extension, or will the other extensions run asynchronously?

Hi juggie,
welcome to the forum.

The answer is Yes and No :slight_smile:

Yes: it will block other extension tasks for the same clientID, so it is very recommended to not block in any callback that you register in your extension.

No: It does not block another client to authenticate, authorise or call the lifecycle event listener. BUT if too many clients run into the same issue that their threads are blocked, then no more extension tasks can be executed. Same advice don’t block :wink:

Regards
Flo

3 Likes