How does one design loosely-coupled systems which may often require data from each-other but don't necessarily belong in the same category?
For instance, lets take the old Pet-shop example one-step further and create a pet-store franchise. Each pet-store has its own website listing their contact information, promotions, and current stock.
The franchise owners want to have a listing of all the franchised pet-stores along with contact information and possibly a few photos available on their corporate site. They want to be able to update this information, and have any updates pushed automatically both-ways. They also want to provide the promotions information to all stores' sites in an automated way.
So, in this instance the stock lists are "owned" by the stores, and the contact information is part-"owned" by both entities, and the promotion information is "owned" by HQ. Due to arbitrary reasons all this data can't be stored in the same place.
Are there some best-practices or common strategies for coping with a situation like this?