CAP-Oriented Design for Cloud-Native Applications

  • Vasilios Andrikopoulos
  • Steve Strauch
  • Christoph Fehling
  • Frank Leymann
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 367)


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.


Cloud Computing Cloud Service Cloud Environment Public Cloud Cloud Application 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Leymann, F., Fritsch, D.: Cloud Computing: The Next Revolution in IT. In: Proceedings of the 52th Photogrammetric Week, pp. 3–12 (2009)Google Scholar
  2. 2.
    Varia, J.: Architecting for the Cloud: Best Practices. Amazon Web Services (2010),
  3. 3.
    Badger, M.L., Grance, T., Patt-Corner, R., Voas, J.M.: Cloud Computing Synopsis and Recommendations. NIST Special Publication 800-146 (2012),
  4. 4.
    Brewer, E.A.: Towards Robust Distributed Systems. In: Proceedings of the Annual ACM Symposium on Principles of Distributed Computing, vol. 19, pp. 7–10 (2000)Google Scholar
  5. 5.
    Gilbert, S., Lynch, N.: Brewer’s Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services. ACM SIGACT News 33(2), 51–59 (2002)CrossRefGoogle Scholar
  6. 6.
    Fehling, C., Leymann, F., Retter, R., Schumm, D., Schupeck, W.: An Architectural Pattern Language of Cloud-Based Applications. In: Proceedings of the Conference on Pattern Languages of Programs, PLoP (2011)Google Scholar
  7. 7.
    Hewlett-Packard Development: There is no Free Lunch With Distributed Data. HP White Paper (2005),
  8. 8.
    Helland, P.: SOA and Newton’s Universe. MSDN Blogs (2207),
  9. 9.
    Kossmann, D.: How new is the Cloud? In: IEEE Proceedings of ICDE 2010, p. 3 (2010)Google Scholar
  10. 10.
    Mietzner, R., Fehling, C., Karastoyanova, D., Leymann, F.: Combining Horizontal and Vertical Composition of Services. In: IEEE Proceedings of SOCA 2010, pp. 1–8 (2010)Google Scholar
  11. 11.
    Pardon, G.: A CAP Solution (Proving Brewer Wrong). Personal Blog (2008),
  12. 12.
    Vogels, W.: Eventually Consistent. Communications of the ACM 52(1), 40–44 (2009)CrossRefGoogle Scholar
  13. 13.
    Zimmermann, O., Koehler, J., Leymann, F., Polley, R., Schuster, N.: Managing Architectural Decision Models with Dependency Relations, Integrity Constraints, and Production Rules. Journal of Systems and Software 82(8), 1249–1267 (2009)CrossRefGoogle Scholar
  14. 14.
    Brewer, E.: CAP Twelve Years Later: How the “Rules” Have Changed. Computer 45(2), 23–29 (2012)CrossRefGoogle Scholar
  15. 15.
    Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley Longman Publishing Co., Inc., Boston (2003)Google Scholar
  16. 16.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman (1994)Google Scholar
  17. 17.
    Fehling, C., Leymann, F., Mietzner, R., Schupeck, W.: A Collection of Patterns for Cloud Types, Cloud Service Models, and Cloud-Based Application Architectures. Technical Report (2011)Google Scholar
  18. 18.
    Strauch, S., Andrikopoulos, V., Breitenbücher, U., Kopp, O., Frank, L.: Non-Functional Data Layer Patterns for Cloud Applications. In: Proceedings of CloudCom 2012, pp. 601–605. IEEE Computer Society Press (2012)Google Scholar
  19. 19.
    Leymann, F., Roller, D.: Production Workflow: Concepts and Techniques. Prentice Hall PTR (2000)Google Scholar
  20. 20.
    Erl, T., Kurtagic, A., Wilhelmsen, H.: Designing Services for Windows Azure. MSDN Magazine (2010),
  21. 21.
    Lau, C., Birsan, V.: Best Practices to Architect Applications in the IBM Cloud. IBM DeveloperWorks (2011),
  22. 22.
    Chee, Y.M., Zhou, N., Meng, F.J., Bagheri, S., Zhong, P.: A Pattern-Based Approach to Cloud Transformation. In: IEEE Proceedings of CLOUD 2011, pp. 388–395 (2011)Google Scholar
  23. 23.
    Alexander, C., et al.: A Pattern Language. Towns, Buildings, Construction. Oxford University Press (1977)Google Scholar
  24. 24.
    Iba, T., Miyake, T., Naruse, M., Yotsumoto, N.: Learning Patterns: A Pattern Language for Active Learners. In: Conference on Pattern Languages of Programs, PLoP (2009)Google Scholar
  25. 25.
    Manns, M.L., Rising, L.: Fearless Change: Patterns for Introducing new Ideas. Addison-Wesley, Boston (2005)Google Scholar
  26. 26.
    Yahoo! Inc.: Yahoo! Design Pattern Library. Online Resource (2011),
  27. 27.
    Harrison, N.B., Avgeriou, P., Zdun, U.: Using Patterns to Capture Architectural Decisions. IEEE Software 24(4), 38–45 (2007)CrossRefGoogle Scholar
  28. 28.
    Andrikopoulos, V., Binz, T., Leymann, F., Strauch, S.: How to Adapt Applications for the Cloud Environment. Springer Computing 95(6), 493–535 (2013), Google Scholar

Copyright information

© Springer International Publishing Switzerland 2013

Authors and Affiliations

  • Vasilios Andrikopoulos
    • 1
  • Steve Strauch
    • 1
  • Christoph Fehling
    • 1
  • Frank Leymann
    • 1
  1. 1.Institute of Architecture of Application Systems (IAAS)University of StuttgartStuttgartGermany

Personalised recommendations