At present, Hedwig is able to scale topic but not subscription, so one topic can only serve a few subscribers. However, there are many user cases with huge subscriptions in reality: lots of users are interested in same things, such as specific sport game, famous people's activity (update on twitter/facebook), etc.
And if Hedwig user plans to scale subscriptions, the only way I know is transform subscription into topic: for each subscription, create a new topic "topic#subId" then each topic consists of only one subscriber. It do resolve the scalability issue but it is not an ideal solution:
- Topic amount grows a lot, which increases the metadata usage and demands more Hub servers.
- Each message is replicated for each subscriber. In other words, assume there are S subscribers with M messages on the topic, then the actual message number in the system is S x M!
This JIRA aims to find a better solution for Hedwig to afford subscription scalability.