I have a question regarding notification streams. We are using single notification stream to which many clients are subscribed. We have noticed some wired behavior that suggest multiple subscribers may influence each other. It seems that when we are sending notifications, all the subscribers handle the notifications at the same time. What I mean by that is that we know we have some ‘slow’ and ‘fast’ notification handlers and it seems the notification is handled in a synchronous way by all the stream subscribers.
As far as I understand, ConfD sends notifications asynchronously to each subscriber so it should not be influenced by the performance of ‘slow’ handlers.
Furthermore, it seems that handling a large batch of notifications ~100K takes longer than expected.
I have few questions:
- What might explain the ‘synchronous’ behavior we are observing?
- What can I do/configure in order to improve performance of single stream to many subscribers?
- What is exactly the flow of sending a notification to the subscriber:
a. Does ConfD signal the subscriber which in turn pull the notification? If yes, how can each subscriber read his own notification, as some subscribers might be lagging behind to others?
b. Does ConfD push the notification to the subscriber? Is it done asynchronously?
c. How ConfD manages the stream Q for all the subscribers?
d. Is there any performance difference between establish-subscriptionto create-subscription when sending notifications to many subscribers?