Simple extensible event publisher