Announcement Announcement Module
No announcement yet.
Any open-source based generic Notification Engine??? Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Any open-source based generic Notification Engine???

    Hi All,

    We have a requirement to design a generic notification engine that can handle various types of notification such as:

    JMS messaging
    Email notification
    Pager notification
    Custom notification

    Events can be generated by Database (such as DBMS ALERTS) or any component. Any system that would like to receive an event will register with the notification subsystem. When an event occurs, the system has to notify one or more subscribers. In some cases, there are not subscribers (e.g sending email notification when a PRIORITY ticket is created). This notification subsystem should also process PRIORITY events. Events should be persisted to survive system crash so are the subscriber information.

    As all of these requirements sound very generic, i'm wondering if there exists any open-source based notification subsystem that supports many of the above features.

    Does anyone know of any such notification engine?

    Thanks for any input in advance!

  • #2
    My idea:

    Use JMS as the core of the event system.

    You create a JMS topic for every type of event and create a subscriber for every notification mechanisme. (maybe you can use the same subscriber-class for different topics if the type of the message is the same)
    -You don`t have to do anything special for JMS (because the system already is build in JMS)
    -For email all clients for a specific type of event can be stored in the database. If the subscriber receives an event, it can send an email (with JavaMail) to all emails subscribers. You have to create your own mechanism to make sure that emails aren`t send to clients more than once. You could create a mailsendbatch in the db and for every message that is send, you mark the mail for the subscriber as send in the db. You need a single transaction for a a single mail. The only problem is that still don`t have any guarantees that a mail is send once because the mail could be send, but the system crashes on the commit of the transaction. This is something you have to look at (maybe it isn`t that important).
    -The same goes for Pager and custom notification.
    You can create as many subscribers (for different notification mechanisms) as you need.

    And if a component wants to publish events, it can send the event to the correct JMS topic.

    JMS also has support for storing the messages, and making it part of a transaction, so you won`t lose messages if the server goes down. And you can use durable subscribers so they don`t miss any messages.


    • #3
      an ESB

      Have you looked at ESBs like mule? you could send an event to the bus and dispatch it to multiple endPoints. It will supports JMS, SMTP etc as endPoints OOTB, but you'd have to work out how to send SMS separately. You could set up with a gateway provider that will convert an email to SMS for example, they are pretty cheap services these days.


      • #4
        Do you know what you are going to use?


        • #5
          Thanks for the response Alarmnummer and analogueboy.

          Looks like there's no ready made solution available for my requirement. We are planning to develop one solution around JMS.


          • #6
            Some open-source Corba Notification Service implementation could be a good base for your system.

            See for integration with JMS.