Databases for SOA Architectures
When you are defining a SOA Architecture probably you will find new challenges at the time of work with large data amount from differents business scenarios. In this case the relational model can seems a limited option because the data is stored in the same database and everybody wants to use it at the same time and can affect to the system in performance and scalability. Currently the options available are use differents strategies to manage the data using tecnologies as Replication, ReadOnly databases, reduce Transaction impact, etc. All of these options are based on think about the strategy at implementation time, but recently are appearing new options to apply at desing time.
The first option is use no-sql databases. These model are specific for concrete scenarios where you can avoid think about characteristics as Consistency, Transactionability, etc, that could be interesting for specific scenarios. Some of this models are specific for one scenario (for example Social Networks using nosql models because it´s most important to get faster query results of a grat amount of data although sacrificing the data consistence), and another models are more generic but not as the Relational Databases.
The second options is use Databases based on a model Non-normalized and segmented. This model represents the business entities and the database acts only as a data store for the entity serialization. In this case, instead of apply the constraints on the database, you can apply them at business service level using rules (business rules and data rules). With this option you get a flexible model, that can be distributed, centralized, etc., adapting them to the needs of the system and its context.
In next post, we will try to share my experience with this models, with concrete scenarios and solutions used normally to solve it.