Skip to content
This repository was archived by the owner on May 27, 2022. It is now read-only.

Conversation

@kmaloor
Copy link

@kmaloor kmaloor commented Mar 7, 2021

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:

  • Producer apps can establish a WebSocket connection with the EAA in exactly the same way as Consumers.
  • The EAA internally opens up a listening loop on that WebSocket for notification events.
  • A received event is not handed down to the EAA broker unless the application issuing the event was registered as a Producer.
  • No changes to the existing APIs for Producers and Consumers, so existing sample apps will work as usual.

PR smart-edge-open/edgeapps#44 illustrates the use of this feature in edgeapps/sample-app.

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 <[email protected]>
@kmaloor
Copy link
Author

kmaloor commented Mar 9, 2021

cc: @cjnolan

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant