Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Need a framework for a notification/dashboard system? [closed]

I've been asked to implement a notification system in a Cloud Java application. The premise is that administrators or components of the application can send either specific messages to individual users, or broadcast announcements to all users.

Notifications would be categorized by severity, type (outages, new services, etc.), and corresponding component.

Users would be able to select types and components they're interested in, and how they'd like to receive those notifications (by e-mail, just shown on dashboard, SMS, etc.). Users could acknowledge or delete notifications, so they won't show up for that user anymore.

Although I'm sure this would be interesting to implement from scratch, it just feels like there should be an existing system, Apache project, commercial project, etc. that does just this and would avoid me having to reinvent the wheel.

My question is: Can anyone recommend a framework for notification tracking that could be integrated into an existing application and automatically handle all the back end stuff? Commercial or open source are fine, as long as the licensing terms are commercial friendly (no GPL or LGPL, please).

like image 356
Shawn D. Avatar asked May 31 '13 15:05

Shawn D.


People also ask

Which framework is used to send notification to user?

Apache Camel is an enterprise routing framework. It has a Message Queue where developers can push messages into, and then it has various routers which take these messages and send them elsewhere. It has routers for sending Email/SMS out-of-the-box.

What is notification framework?

The Notifications Framework provides a consistent, extensible communication mechanism that Campus Solutions product areas (consumers) can use to enable communications from their areas and a generic extensible framework which meets the real-time notifications needs of current features.

What is Dashboard notification?

The Notification Dashboard is a central location to view and resolve errors, warnings, and notifications generated by the Events & Notification framework.


1 Answers

I guess what you are looking for is something similar to Amazon Simple Notification Service (SNS). But first let's set some things straight:

  • You're trying to send Email/SMS - and both require Infrastructure, not just frameworks/libraries. I guess your client (or any client for that matter) would have an Email server running somewhere, so you won't have a direct cost impact. But sending SMS does incur an infrastructure overhead.
  • You won't have an out-of-the-box solution. Since you'll be having additional infrastructure, you will end up at least writing a good level of integration with this infrastructure.

Keeping all that in mind, here are the options, listed in order of difficulty:

  • Use Amazon SNS
  • Use Cloud Message Bus (CMB) - an open-source clone of Amazon SNS. It has the same API format as Amazon SNS, so you'll use this the same way you use Amazon SNS
  • Use Apache Camel with its various Email/SMS Components. Apache Camel is an enterprise routing framework. It has a Message Queue where developers can push messages into, and then it has various routers which take these messages and send them elsewhere. It has routers for sending Email/SMS out-of-the-box. You would first create a topic to which you post messages. Then when a user registers for email notifications, you would add an email endpoint for him/her. And when they opt-out of Email, you will remove that endpoint. Basically its very close to designing your own solution - except you don't have to write code for sending SMS/Email, it has out-of-the-box components for doing that, and you just have to write integration code to add those endpoints as and when the user subscribes for notifications.
  • Roll your own. Your solution would end up being very similar to the Apache Camel approach. You will have a message queue, you will have topics and listeners. Except you'll be writing your own code to send all the emails/SMS.

Edit: Minor clarifications

like image 156
Subhas Avatar answered Sep 17 '22 16:09

Subhas