Hi @soham ,
Rather than change the window size or implement a pull pattern, the best approach is probably to use the message consumer stop method. This stops delivery of messages to your application and implements the flow control in the application rather than shifting it to the broker or API.
I don’t know your application logic or requirements, but one approach may be to accept one downstream batch size of messages, call stop , then start when you’re ready to receive another batch.
This is a good use of the broker, acting as a kind of buffer between two systems - we sometimes call this the “shock absorber” pattern.