A Practical Approach to Peer-to-Peer Publish-Subscribe