NAME
    AtomMQ - An atompub server that supports the message queue/bus model.

VERSION
    version 0.0100

SYNOPSIS
        #!/usr/bin/perl
        use AtomMQ;
        my $dsn = 'dbi:SQLite:dbname=foo.db';
        my $server = AtomMQ->new(feed => 'MyCoolFeed', dsn => $dsn);
        $server->run;

DESCRIPTION
    An atompub server that supports the message queue/bus model. Throughout
    this document, I will use the term message when refering to an atom feed
    entry, since the point of this module is to use atompub for messaging
    purposes. AtomMQ extends Inoue's Atompub::Server which extends
    Miyagawa's XML::Atom::Server. Can you feel the love already?

    Usage:

        #!/usr/bin/perl
        use AtomMQ;
        my $dsn = 'dbi:SQLite:dbname=foo.db';
        my $server = AtomMQ->new(feed => 'MyCoolFeed', dsn => $dsn);
        $server->run;

    Just drop the above file in your cgi-bin folder on your web server, and
    you will have a shiny new atompub server with a feed titled MyCoolFeed.
    It can also be run via mod_perl on apache, but that is more complicated.
    To create more feeds, just copy that file and change 'MyCoolFeed' to
    'MyOtherFeed'.

    To publish a message to AtomMQ, make a HTTP POST request:

        $ curl -d '<entry> <title>allo</title> <content type="xhtml">
          <div xmlns="http://www.w3.org/1999/xhtml" >an important message</div>
          </content> </entry>' http://localhost/cgi-bin/mycoolfeed

    Where mycoolfeed is the name of the file you created in cgi-bin.

    So how is this different than a regular atompub server? Just one simple
    thing. A concept of lastid. So if you just do:

        $ curl http://localhost/cgi-bin/mycoolfeed

    you will get all messages since the feed was created. But lets say you
    are running a client that polls the feed and processes messages. If this
    client dies, you will not want it to process all the messages again. So
    clients are responsible for maintaining and persisting the id of the
    last message they processed. This allows a client to request only
    messages that came after the message with the given id. They can do this
    by passing a Xlastid header:

        $ curl -H 'Xlastid: 42' http://localhost/cgi-bin/mycoolfeed

    That will return only messages that came after the message that had id
    42.

AUTHOR
    Naveed Massjouni <naveed.massjouni@rackspace.com>

COPYRIGHT AND LICENSE
    This software is copyright (c) 2010 by Naveed Massjouni.

    This is free software; you can redistribute it and/or modify it under
    the same terms as the Perl 5 programming language system itself.

