Re: [Catalyst] Implementing Webhooks.

2014-01-15 Thread Tomas Doran
My take on this is to log things into ZeroMQ (via Message::Passing), and route 
them to Message::Passing::Output::WebHooks - the code for that output might not 
be as bullet proof as you’re looking for, but it should be a reasonable 
starting place.

I’d probably go right ahead and implement the timeout in that output for a 
first take - you’d lose anything which was waiting in a retry interval as and 
when you restarted the hook server, but that would presumably be very 
infrequently, and if you had _lots_ of timeouts, it could use a lot of RAM.. 
But depending upon that scale / relaibility you actually need both of these 
things might be just fine.

Cheers
Tom

On Jan 15, 2014, at 7:28 PM, Bill Moseley  wrote:

> I'm running Catalyst under mod_perl2 (currently, subject to change).   Some 
> requests trigger a callback to a user-provided URL -- a webhook.
> 
> Obviously, it's best to do those asynchronously and not in-process.   Don't 
> want a web request (or really an Apache process) hanging while waiting on an 
> external web server to respond.
> 
> A queue is probably the best approach, but there's also some advantage of 
> having the Catalyst app make the webhook request -- specifically because the 
> Catalyst app has the context of the request and has application logging 
> available. 
> 
> How would you implement this?
> 
> 
> How would that change if you wanted more than just "fire-and-forget"?  For 
> example, if you wanted to provide some kind of retry interval for failed 
> callbacks. The external server might be temporarily down for maintenance.
> 
> 
> Thanks,
> 
> 
> -- 
> Bill Moseley
> mose...@hank.org
> ___
> List: Catalyst@lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/

___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/


[Catalyst] Implementing Webhooks.

2014-01-15 Thread Bill Moseley
I'm running Catalyst under mod_perl2 (currently, subject to change).   Some
requests trigger a callback to a user-provided URL -- a webhook.

Obviously, it's best to do those asynchronously and not in-process.   Don't
want a web request (or really an Apache process) hanging while waiting on
an external web server to respond.

A queue is probably the best approach, but there's also some advantage of
having the Catalyst app make the webhook request -- specifically because
the Catalyst app has the context of the request and has application logging
available.

How would you implement this?


How would that change if you wanted more than just "fire-and-forget"?  For
example, if you wanted to provide some kind of retry interval for failed
callbacks. The external server might be temporarily down for maintenance.


Thanks,


-- 
Bill Moseley
mose...@hank.org
___
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/