This repository was archived by the owner on May 27, 2022. It is now read-only.
Use WebSockets in Producers to send notifications#28
Open
kmaloor wants to merge 1 commit intosmart-edge-open:masterfrom
Open
Use WebSockets in Producers to send notifications#28kmaloor wants to merge 1 commit intosmart-edge-open:masterfrom
kmaloor wants to merge 1 commit intosmart-edge-open:masterfrom
Conversation
This change exposes a bi-directional websocket at /notifications to permit both the sending and receiving of data via the websocket. As a result, Producer apps can now utilize a persisted websocket connection to submit notification events to all subscribed consumers instead of relying on separate HTTP(s) POST requests for each notification. This change does not break any pre-existing behaviors, and only adds a new method to send notifications. So, existing sample applications will continue to function as expected. Signed-off-by: Kishen Maloor <kishen.maloor@intel.com>
Author
|
cc: @cjnolan |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.