vert-x3 / vertx-tcp-eventbus-bridge

Apache License 2.0
49 stars 44 forks source link

Created bridge event on client consumer handler to support backpressure and other use cases #71

Open erik777 opened 2 years ago

erik777 commented 2 years ago

Motivation:

We needed a way to manage backpressure of messages that clients consume. I simply used the current BridgeEvent handler and extended it to call checkCallHook from inside the consumer handler under the "register" case.

This allowed us, and anyone else, to intercept the messages with the event handler and drop them when we detected backpressure on the socket, which the bridge handling provides access to. The backpressure code is not included in this PR, but is possible by the changes in the PR.

I used the BridgeEventType.RECEIVE, which was not previously used on the server side of the bridge because it's doc description best fit this type of message.

Conformance:

Your commits should be signed and you should have signed the Eclipse Contributor Agreement as explained in https://github.com/eclipse/vert.x/blob/master/CONTRIBUTING.md Please also make sure you adhere to the code style guidelines: https://github.com/vert-x3/wiki/wiki/Vert.x-code-style-guidelines

erik777 commented 2 years ago

I did not see a way to exclude files from the PR, so it includes our custom pom-as.xml which is not needed for the PR, but needed to build and deploy in our enviornment. Remaining are changes to two java files that make up this PR.

You can delete pom-as.xml.