Techniques for building a scalable and reliable distributed content-based publish/subscribe system