Matt-Esch commented on issue #230: URL: https://github.com/apache/pulsar-client-node/issues/230#issuecomment-1239819312
If the async flush method isn't flushing correctly, this is likely to be an issue in the underlying pulsar library. I don't doubt that it's possible for the library to not flush correctly, but I don't see any issue in the calling code in the node wrapper. https://github.com/apache/pulsar-client-node/blob/master/src/Producer.cc#L136 It's also possible that async publish increases the throughput making it easier to fill the queue. The problem with the sync methods with the async worker threads is that they are limited in concurrency so it might be enough back pressure to prevent you running into the queue full issue. There was also an issue with calling send because unless you waited for each send to complete, they could happen out of order, further reducing the throughput. It looks like the issue you referenced comes to similar conclusions about the underlying behavior of the flush api in the C++ library. You didn't mention which specific version you are using, it was necessary to upgrade the client library to make all async methods work correctly. Personally if I was in your position I would either be looking to debug the C++ client library or I would be wrapping the publish code to backoff if the queue is full, i.e. handle the error with some backoff. -- 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: dev-unsubscr...@pulsar.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org