We propose Ferry, an architecture that extensively yet wisely exploits the underlying distributed hash table (DHT) overlay structure to build an efficient and scalable platform for content-based publish/subscribe (pub/sub) services. Ferry aims to host any and many content-based pubservices: Any pubsub service with a unique scheme can run on top of Ferry, and multiple pub/sub services can coexist on top of Ferry. For each pub/sub service, Ferry does not need to maintain or dynamically generate any dissemination tree. Instead, it exploits the embedded trees in the underlying DHT to deliver events, thereby imposing little overhead. Ferry can support a pub/sub scheme with a large number of event attributes. To deal with a skewed distribution of subscriptions and events, Ferry uses one-hop subscription push and attribute partitioning to balance load