CAP-Oriented Design for Cloud-Native Applications

Brewer’s conjecture, and its resulting formalization as the CAP theorem, impose serious limitations on the consistency, availability and network partitioning tolerance characteristics of distributed systems. Despite its importance however, few works explicitly consider the implications of the CAP theorem in the design of applications, especially for applications that are designed natively for the Cloud. In order to address this need, in this work we propose a CAP-oriented design methodology for Cloud-native applications. For this purpose we build and extend our previous work on Cloud architectural patterns. Finally, we show how the methodology can be used in practice to design an application solution with desired CAP properties.

[1]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[2]  Frank Leymann,et al.  An architectural pattern language of cloud-based applications , 2011, PLoP '11.

[3]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[4]  Werner Vogels,et al.  Eventually consistent , 2008, CACM.

[5]  Nancy A. Lynch,et al.  Brewer's conjecture and the feasibility of consistent, available, partition-tolerant web services , 2002, SIGA.

[6]  Oliver Kopp,et al.  Non-functional data layer patterns for Cloud applications , 2012, 4th IEEE International Conference on Cloud Computing Technology and Science Proceedings.

[7]  Frank Leymann,et al.  How to adapt applications for the Cloud environment , 2012, Computing.

[8]  Frank Leymann,et al.  Managing architectural decision models with dependency relations, integrity constraints, and production rules , 2009, J. Syst. Softw..

[9]  Frank Leymann,et al.  A Collection of Patterns for Cloud Types, Cloud Service Models, and Cloud-based Application Architectures , 2011 .

[10]  Gregor Hohpe,et al.  Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , 2003 .

[11]  Mary Lynn Manns Fearless change : patterns for introducing new ideas / by Mary Lynn Manns and Linda Rising , 2005 .

[12]  E. Brewer,et al.  CAP twelve years later: How the "rules" have changed , 2012, Computer.

[13]  Frank Leymann,et al.  Production Workflow: Concepts and Techniques , 1999 .

[14]  Frank Leymann,et al.  Combining horizontal and vertical composition of services , 2010, IEEE International Conference on Service-Oriented Computing and Applications.

[15]  Uwe Zdun,et al.  Using Patterns to Capture Architectural Decisions , 2007, IEEE Software.

[16]  Mary Lynn Manns,et al.  Fearless Change: Patterns for Introducing New Ideas , 2004 .

[17]  Eric A. Brewer,et al.  Towards robust distributed systems (abstract) , 2000, PODC '00.

[18]  Murray Silverstein,et al.  A Pattern Language , 1977 .

[19]  Nianjun Zhou,et al.  A Pattern-Based Approach to Cloud Transformation , 2011, 2011 IEEE 4th International Conference on Cloud Computing.

[20]  Frank Leymann,et al.  Cloud Computing: The Next Revolution in IT , 2009 .

[21]  Donald Kossmann How new is the cloud? , 2010, ICDE.

[22]  Timothy Grance,et al.  Cloud Computing Synopsis and Recommendations , 2012 .