This repository was archived by the owner on May 27, 2022. It is now read-only.
Use WebSockets in Producers to send notifications #28
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Producer applications currently require to issue HTTP POST requests for sending notification events. This continually incurs the overhead of establishing TCP/TLS sessions for every such request. This overhead may become costly in deployments where Producers send notification events at a high frequency leading to wastage of resources, lost events, etc.
A simple workaround is to reuse the existing Websockets mechanism to also send notifications from Producers. Sending new events out through a persistent connection leads to swifter processing of events more efficiently. A very basic experiment to compare the two methods suggested almost 3 orders of magnitude improvement in the processing time for every notification event sent through a WebSocket in a Producer application.
Summary of the change:
PR smart-edge-open/edgeapps#44 illustrates the use of this feature in edgeapps/sample-app.