I think the answer to the buzzword is “Service Oriented Architecture” is really option 2.
This is a large-scale undertaking, with many exciting deadlocks to explore - but basically, instead of thinking about databases and tables, think about the services that these 15 applications need. Some of them can be divided, some can be specific for one application. Find a way to expose these services to applications - but remember that a web service call can be significantly slower than an equivalent direct database call, so don't use a “service oriented architecture” to mean that you have to implement web services everywhere - it is more a thinking than a product specification.
Replication and synchronization - in my experience - create very fragile systems, with failure modes that make the brain even think.
The other is good, you don’t really say what specific problem you are trying to solve. If its performance is the cheapest way to solve performance problems, then throw hardware at the problem. If it is manageability, an SOA can help with this, but it often also introduces additional infrastructure to the composition, which also needs to be supported. Make sure that you really clearly understand what forces you to choose an architecture because there is no single “best” solution - all this involves compromises.
source share