Simple publish-subscribe implementation