Skip to Main Content
In order to design distributed business applications or services, the common practice consists in setting up a multi-tier architecture on top of a relational database. Due to the recent evolution of the needs in terms of scalability and availability in cloud environments, the design of the data access layer got significantly more complicated because of the trade-off decisions between consistency, scalability and availability that have to be taken into account in accordance with the CAP theorem. An interesting compromise in this context consists in offering some flexibility at the consistency level, in order to allow multi-tier architectures to support partition tolerance flexibility while guaranteeing availability. This paper introduces a flexible data layer that guarantees availability and gives the ability to the developers to easily select the required execution context, by integrating eventually consistent storage with strongly consistent databases. A given query can either be executed in an eventually consistent but very scalable context or in a strongly consistent context with limited scalability. The benefits of the proposed framework are validated in a real-world use case.