Howdy! If at all possible, the contacts are always retained only on the actual legacy service. When you log in via the plugin, your contact list from say, AIM, is pulled and a set of non-persistent XMPP roster items is set up. The plugin does everything it can o keep all changes you might make to your contact list current on the actual legacy service. Do if you moved all of your contacts for AIM into a group called Ninjas, the next time you logged into a ‘‘real AIM client’’, all of your contacts would be moved into the Ninjas group there too. In some cases, some of the information is stored in the gatewayPseudoRoster table. This is used when the legacy service does not support some feature we want. For example, Yahoo doesn’‘t let you store any form of “alias” or “custom nickname” on their own servers, so we use the pseudo roster to keep track of any nicknames you might set. All of the actual XMPP roster items are non-persistent, and just stored in memory/a cache or something along those lines (I’‘m not clear on the details there, it’'s a feature of Openfire itself) This avoid polluting your actual XMPP roster in the database and can make it so that we can easily make your legacy contacts appear or disappear based off whether you are logged in/registered/etc.