I'm a developer for a retail enterprise IT department, and am currently stuck on the following scenario:
Department A is responsible for a CRUD service that's used for handling stores - so when our company wants to open a new physical location, it goes through there.
I'm in department B, which amongst other things is responsible for a geo information system. We are of course interested in e.g. location data of stores. But to us, a store is one of several entities which are basically a point on a map, though each kind of point also has its own special attributes. So I'd like to integrate this store data into a more generalized data model (E.g. there is an abstract parent point table with coordinates and point-type, and then the point-specific attributes would be held in child tables).
So I was thinking about the following: Dept. A publishes changes to stores to a message queue, we consume that event and integrate this store data to our data model. If our users want to make changes to store attributes through our map application (for example move it, since this is still the planning phase), we'd call the service of dept. A.
What I'm stuck on in my thinking: What if my users want to extend the store data with certain attributes that are of no interest to Dept. A? So if I want to change the "base-data" through our front-end I'd have to call Service A, but if there's changes to these "local" attributes, it'd have to go through service B that we'd have to provide?
I'm thinking there might be DDD concepts that help with this, but I'm not sure how to word this scenario to get the right results.