Brad Fitzpatrick (bradfitz) wrote in lj_dev,
Brad Fitzpatrick
bradfitz
lj_dev

ESN, 4 years and 2 months later...

4 years and 2 months after its first introduction, the ESN system is finally under heavy development. You might've seen us working on it a bunch in changelog.

What is ESN? It stands for Event/Subscription/Notification. It lets you subscribe to anything interesting going on. It won't be marketed like that, it'll probably be called "Subscription Center" or "Watch list" or something.

A lot of the implementation details of that old post have changed, but the general idea is exactly the same:

-- tons of things on the site fire events:

journal has a new entry (lj_dev just got this post)
somebody posted (brad just posted to lj_dev)
new userpic (a friend of yours just added a new userpic)
somebody befriended you,
new support request in a category,
....

-- users can subscribe to events (subject to privacy/stalking/etc), or aggregates of events (any of my friends adds a new userpic), filter on properties of the events (only posts in lj_dev tagged "esn"), and then choose which notification method to use:

-- notification methods we're thinking about (won't all be available at launch) include:

website -- online inbox of events (which we also want to allow POP3 access to)
email
jabber
sms
web-service request (HTTP POST, XML-RPC, SOAP) to user-defined endpoint


So think: you can make your own alert flows. Think of it kinda like Automator for LiveJournal.

Anyway, if you're interested in the code, it's at:

cgi-bin/LJ/Event.pm
cgi-bin/LJ/Event/*
cgi-bin/LJ/Subscription.pm
cgi-bin/LJ/NotificationMethod.pm
cgi-bin/LJ/NotificationMethod/*

And there a bunch of tests in:

t/esn*

The plan at this point is to launch with only the post/comment events primarily, as a test, but we'll also have befriended, new userpic, and some other trinket-y ones as a demo. Over time we'll add more and more events, and will also convert all our legacy notification systems (existing emails, support notifications, etc) over to ESN's framework.

If anybody wants to get involved, adding new event types would be the most helpful thing. Maybe somebody wants to convert the support area?
Tags: esn
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 36 comments