Introduction

This describes some experiences with group event notification at the University of Washington.  Our group service uses messaging for a variety of purposes:

  1. Membership and other events from our Groups Web Service (GWS) to subordinate group systems: Google groups, Active Directory, local caches, and etc.
  2. Course enrollment events from Student Services to the GWS. This allows students to enroll in a section and immediately use web services that rely on course group membership.
  3. Multiple-system synchronization.  Two or more independent installations of GWS keep in step by sending each other change notices.  This is principally a way to make major Grouper upgrades without interruption of service.

In all cases the message content is essentially the same resource representation as one GETs from the web service. 

We encrypt all messages.

Periodic reconciliation 'finds' any lost events.

Early experiences with Apache ActiveMQ

For a couple of years we used an Apache ActiveMQ message broker to deliver updates to subordinate group caches.  GWS published messages to a durable subscription (topic) on the broker.  Clients subscribed to this subscription. This queue processed 10 to 50 thousand messages per day.

Experience with Amazon Web Services

Course enrollment

For several years we have used Amazon's Simple Notification Service (SNS) to distribute course enrollment events.  Our Student Web Service (SWS) gets enrollment changes directly from the source database (some trigger mechanism), accumulates these for a few minutes, and sends them to an SNS topic (5 events per SNS message).  Content of these messages is similar to the resource representations that one would GET from SWS.  

Group changes

For a couple of years we have distributed our GWS change notices via AWS messaging--switching the service from the local ActiveMQ service.

References