In my SOA, I have 2 services - a users service and products service. Both users and products can be "tagged" with 2 objects - countries and industries. This means that both services will have a join table and future services will need that as well. I would like the database of countries and industries to be standard and managed from one place if possible. There are a few options I can think of:
- Keep the countries, industries, and other shared databases on it's own server and allow external read only connections while manipulating the data would have to be done by one app whose sole purpose is to manage that data.
- Keep copies of those tables in a database local to the service, and have them act as slave tables. The master tables will be maintained by an app that manages that data and pushes out updates to those slave tables.
Am I missing any good options? Out of those 2 or any other proposed, which would you go with and why?