Bob Wyman asks an interesting question: Does scaling require protocol variants?
In particular:
What works for light load doesn't work for heavy loads and what is good for some heavy loads isn't useful for light loads... What we need here is is two protocols -- or, in some cases, a single protocol that incorporates support for two usage models.
Of course, nobody likes to define multiple protocols to get a single job done. Thus, you're not seeing a rush in the IETF to define "high volume" or "large scale" versions of the many protocols that quite adequately meet the needs of most users today. But, in the future, it might make sense for us to recognize that at some point quantitative differences translate into qualitatively different problems. Perhaps we should start thinking of serving both small and large systems as two different jobs and recognize that while we have many of the protocols we need to address small systems needs, we still don't have what we need to support the larger systems.
As an example from the XMPP world, we might want to design different transport methods for one-to-one or small-group whiteboarding as distinct from the use cases with 10,000 people monitoring the same whiteboard. Similarly for multi-user chat, publish-subscribe, and Jingle. It's worth considering...