Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: UNS (Unified Notification Stream) v1.0 need, requirements & implementation details #1

Open
prakashchokalingam opened this issue May 8, 2022 · 1 comment
Assignees
Labels

Comments

@prakashchokalingam
Copy link
Contributor

prakashchokalingam commented May 8, 2022

What is UNS?

UNS is an enhanced alternative for RSS stands for Unified Notification Stream, which helps to collect updates, notifications & alerts across different products & services in real-time.

Why?

  • RSS is dead.
  • UNS is real-time & uses JSON, hence UNS notifications can support rich functionalities with configurations
  • UNS feeds support reactions & discussions
  • UNS supports grouped notifications
  • UNS supports user scoped notifications, hence a product/service need not to build its custom notification system they can simply rely on UNS (not available for community version)
  • UNS supports rich components (not available for community version)
  • UNS provides rich APIs & SDKs to publish and integrate
  • UNS is secure & verified.

Workflow

Providers

Channels

  • Product or Service which is going to use UNS to push updates needs to register their channel with UNS HQ to get the channel identity token.
  • Once a channel is created it is publically available for the end-users to subscribe.
  • 'n' number Channels can be created & managed at the UNS HQ web app

Public notifications

  • Once Registered with the channel identity token providers can start publishing updates via SDKs or APIs
  • Providers can auto subscribe/unsubscribe users into their channel
  • By default all notifications will have reactions & discussions, providers can opt to turn them off.
  • Once a user unsubscribed by a channel, they cannot rejoin unless a channel manager added the user back to the channel

Private notifications (Not available for community version)

  • For private notifications, providers need to get a channel based user identity token (unique per channel) from UNS, with the user identity token they can start publishing private updates.

Rich components (Not available for community version & v1.0 release)

  • Along with notifications, a few rich components can also be configured and sent to the end-users like polls, feedback and more.

Consumers

  • With UNS reader (UNS HQ Web App / Chrome addon / Desktop App / Mobile APP & SDKs) if a user subscribed to the channel, end users can get the updates in real-time.
  • Users can opt to subscribe/unsubscribe to a channel via the above reader's app.
  • Once a user unsubscribed from a channel, they cannot be added back to the channel by the channel manager.

General

  • UNS socket is open to all, any consumer app can connect to the socket and listen for notification feeds. They can listen to all channels or to a specific channel for public feeds.
  • For private notification feeds consumer apps have to get the user token with user consent (not available @v1.0 release)

Required Apps

  • A core app which takes care of channel, user & notification management (GO lang)
  • Realtime socket app which takes care of pushing events to appropriate channels along with Kafka stream (GO lang)
  • UNS reader for all devices (Flutter)
@prakashchokalingam prakashchokalingam self-assigned this May 8, 2022
@prakashchokalingam prakashchokalingam changed the title RFC: UNS (Unified Notification System) v1.0 need, requirements & implementation details RFC: UNS (Unified Notification Stream) v1.0 need, requirements & implementation details May 8, 2022
@tharakai
Copy link

tharakai commented May 9, 2022

Awaiting UNS, a great alternative to RSS with some promising features.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants