the runloop reads from all sources and dispatches to matching consumers
force CPAN::ReleaseHistory to sort events by date
a basic consumer role
call setup and teardown on the consumers
count releases per PAUSE id