[standards-jig] JEP--0084: Why avatars use PubSub

Bob Wyman bob at wyman.us
Sat Jul 19 22:59:20 UTC 2003

In reading the Avatar JEP, I'm somewhat puzzled by the explanation
provided for why PubSub has been used. The explanation provided is:

    "Publish-Subscribe was chosen as the base layer 
    for avatars because of the need to publish a large 
    amount of data to any number of users. PubSub provides 
    an easy mechanism for any user to subscribe to the 
    avatar source and receive notifications from the publisher. 
    Furthermore, the publiser only has to send the data once 
    to the pubsub component, and it relays it to all the 

Please forgive me if I'm being too picky about the wording here,
however, the stress seems to be on PubSub being used because of the
"large amount of data." I've always thought of PubSub as a tool for
synchronizing state between systems. The amount of the state being
synchonized doesn't seem relevant to whether or not PubSub is used. In
this case, I suspect that the real problem isn't that there is a "large
amount of data" that needs to be published to any single user but rather
that the problem is that data needs to be published to a potentially
large number of users. If this is the case, I would propose that you use
words something like:

  "Publish-Subscribe was chosen as the transport for
   avatars since it is uniquely well suited to the task of 
   publishing data to a potentially large, dynamic set of 
   users. PubSub provides an easy to use mechanism allowing 
   users to initially retrieve the avatar and 
   subsequently receive avatar updates as soon as they are
   published. PubSub simplifies the process of publishing
   avatar updates by managing the distribution and updating of
   the avatar on behalf of the publisher. The publisher only 
   sends a single update of the avatar to the pubsub component
   and that component then manages the distribution of the
   updated avatar to all subscribing users."

		bob wyman

More information about the Standards mailing list