Recently I'm tackling with a problem which has some dependencies with SOA architecture. It's where a question about SOA architecture comes out: "Does each service has its own data in SOAs?" After searching on the web I found different answers to this question. It seems that it depends on conditions!
Suppose if something happens in a point everything in the whole system, the process should be back to the earlier point because each task is independent of the others, right? In this case, if every service has its own data, it will be easier to deal with the scenario. There is a solution for that: as in SOA architecture, every service can be hosted on a different machine, so we can dedicate one of the services to data management (Datacenter).
In other way, Services can cache data of other Services. And any changes in the source of the data should be published so the subscribing Services can update their cache. Although this is the cost-effective solution, it is a good one! It also increases the availability of a Service by preventing it from being dependent on the data of other Services. and if the other Service is not available, it can still do its job by its cache data.