[OPEN-ILS-DEV] notifications (internals)

Josh Stompro stomproj at larl.org
Sun Nov 1 10:13:59 EST 2009


Bill Erickson wrote:
>
> Hi all,
>
> I put some thoughts together on how we may want to wire up the 
> plumbing for event-based notifications.
>
> http://open-ils.org/dokuwiki/doku.php?id=feature:notifications
>
> There are missing pieces, questions, and likely some non-obvious 
> assumptions on my part, but I wanted to push it out to solicit 
> thoughts on filling in the gaps or doing things differently.  The code 
> will probably be developed in stages, starting with email notices and 
> only a few event types, later moving on to telephony, etc.  Anyway, 
> let me know if you have any thoughts or questions.
>
> Thanks,
>
> -b
>
Bill,
  I was just taking a look at your document for notification internals, 
and I have a few questions.  Your message is from 11/9/08 so let me know 
if this has been supplanted by something else.

Under creating notices you say "Context information is passed directly 
to a new class method OpenILS::Notify→create_notification($user_id, 
$context).".  It seems odd to me that the code isn't specifying the type 
of event explicitly.  You say that the handler for this type of event is 
the only code that needs to understand the $context.  What if I just 
want to list all the hold pickup events that are stored, would my query 
need to be based on the contents of the JSON encoded $context variable?

What about having some events be deferrable, as a per org unit/user 
setting.  This would help facilitate batching of event type delivery.  
Each org could decide if things like "Max fines reached" or "Account 
Expired" events (or any other event type) delivery can be deferred for a 
certain amount of time in order to be batched together with other 
notices.  For things like Max fines reached, or account expired the 
delay could be as much as 48 hours or more. For hold pickup events it 
could be 4 hours, with certain cutoff times such as 11:30am and 4:30am 
to ensure customers are informed in time to stop by at lunch or after 
work.  Canceled hold events would be another one that could be deferred 
for quite some time in many situations.

I'm a big believer in minimizing the individual number of notifications 
that a customer receives in total, since they system I currently have 
experience with handles it so poorly.   Currently I can get, one email 
for a hold filled in the morning, another email for a hold filled later 
in the afternoon, another email for a pre-overdue notice at 6am, another 
2 emails for overdues if the two items have different home locations.... 
Sigh.

Josh







More information about the Open-ils-dev mailing list