MediaWiki Developer Meet-Up 2009/Notes/XMPP

  • Day/Time: Saturday April 5th 10:30-11:30
  • Topic: XMPP recentchanges feed (notes from dev meeting: [1])
  • Session leader: Daniel Kinzler (Duesentrieb)
  • Participants: Brion, Catrope, Leafnode, Luca de Alfaro, Rainman, Dani
  • Two use cases:
    • RC feed (low number of users, high traffic)
    • Watchlist feed (high number of users, low traffic)
      • Needs auth, does that work with XMPP?
      • Alternatively, use unguessable channel name that user can change (in prefs)
        • Could also be used for watchlist RSS
  • Performance requirements
    • No idea how many users is sustainable, find out by experimentation?
      • Subscribers through Jabber.org, Gmail.com, etc. are relayed; are the messages collapsed too? (i.e. one msg for multiple rcpts)
  • Pop-ups or IM profile?
    • With pop-ups, you can filter by event type
      • Could be used to facilitate differentiation (diffs, metadata, both, ...)
  • API XML as payload, options for other formats (JSON) too?
    • XML payload wouldn't produce < crap, making parsing easier
  • Info in payload
    • RC metadata
    • Full text of new rev (optional)
    • Machine-readable (unified) diffs with GNU diff (needs diff cache modification)
      • Would reduce bandwidth used for incremental rev fetching
      • Link diffs (off-topic)
  • XMPP can also be used in a pull fashion to query the API
  • Get UDP packets from main cluster to TS
    • UDP packets are limited to ~64K
      • Fulltext/diff inline when small enough, flag+XMPP query when bigger?
    • Leafnode will write a tool for relaying UDP packets
    • Catrope will write a tool for producing UDP packets from RC with API XML payload
      • Duesentrieb has a pluggable UDP framework lying around somewhere
    • For testing, generate UDP packets from TS à la River's RC ticker