Abstract
Today many service-based systems follow the microservice architecture style. As microservices are used to build distributed systems and promote architecture properties such as independent service development, polyglot technology stacks including polyglot persistence, and loosely coupled dependencies, architecting data management is crucial in most microservice architectures. Many patterns and practices for microservice data management architectures have been proposed, but are today mainly informally discussed in the so-called “grey literature”: practitioner blogs, experience reports, and system documentations. As a result, the architectural knowledge is scattered across many knowledge sources that are usually based on personal experiences, inconsistent, and, when studied on their own, incomplete. In this paper we report on a qualitative, in-depth study of 35 practitioner descriptions of best practices and patterns on microservice data management architectures. Following a model-based qualitative research method, we derived a formal architecture decision model containing 325 elements and relations. Comparing the completeness of our model with an existing pattern catalog, we conclude that our architectural decision model substantially reduces the effort needed to sufficiently understand microservice data management decisions, as well as the uncertainty in the design process.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
- 2.
Replication package can be found at: https://bit.ly/2EKyTnL.
References
Sidecar pattern (2017). https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar
Al-Houmaily, Y., Samaras, G.: Two-phase commit. In: Liu, L., Özsu, M.T. (eds.) Encyclopedia of Database Systems, pp. 3204–3209. Springer, Boston (2009). https://doi.org/10.1007/978-0-387-39940-9
Charmaz, K.: Constructing Grounded Theory. Sage, Thousand Oaks (2014)
Coplien, J.: Software Patterns: Management Briefings. SIGS, New York (1996)
Fowler, M.: Command and Query Responsibility Segregation (CQRS) pattern (2011). https://martinfowler.com/bliki/CQRS.html
Glaser, B.G., Strauss, A.L.: The Discovery of Grounded Theory: Strategies for Qualitative Research. de Gruyter, Berlin (1967)
Gorton, I., Klein, J., Nurgaliev, A.: Architecture knowledge for evaluating scalable databases. In: Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture, pp. 95–104 (2015)
Gupta, A.: Microservice design patterns (2017). http://blog.arungupta.me/microservice-design-patterns/
van Heesch, U., Avgeriou, P., Hilliard, R.: A documentation framework for architecture decisions. J. Syst. Softw. 85(4), 795–820 (2012)
Hentrich, C., Zdun, U., Hlupic, V., Dotsika, F.: An approach for pattern mining through grounded theory techniques and its applications to process-driven SOA patterns. In: Proceedings of the 18th European Conference on Pattern Languages of Program, pp. 9:1–9:16 (2015)
Hohpe, G., Woolf, B.: Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison-Wesley, Boston (2003)
Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term (2014). http://martinfowler.com/articles/microservices.html
Lytra, I., Sobernig, S., Zdun, U.: Architectural decision making for service-based platform integration: a qualitative multi-method study. In: Proceedings of WICSA/ECSA (2012)
Newman, S.: Building Microservices: Designing Fine-Grained Systems. O’Reilly, Sebastopol (2015)
Pahl, C., Jamshidi, P.: Microservices: a systematic mapping study. In: 6th International Conference on Cloud Computing and Services Science, pp. 137–146 (2016)
Pautasso, C., Zimmermann, O., Leymann, F.: RESTful web services vs. big web services: making the right architectural decision. In: Proceedings of the 17th World Wide Web Conference, pp. 805–814 (2008)
Perrin, M.: Overview of existing models. In: Perrin, M. (ed.) Distributed Systems, pp. 23–52. Elsevier (2017)
Richardson, C.: A pattern language for microservices (2017). http://microservices.io/patterns/index.html
Zdun, U., Stocker, M., Zimmermann, O., Pautasso, C., Lübke, D.: supporting architectural decision making on quality aspects of microservice APIs. In: 16th International Conference on Service-Oriented Computing. Springer (2018)
Zimmermann, O.: Microservices tenets. Comput. Sci. - Res. Dev. 32(3), 301–310 (2017)
Zimmermann, O., Koehler, J., Leymann, F., Polley, R., Schuster, N.: Managing architectural decision models with dependency relations, integrity constraints, and production rules. J. Syst. Softw. 82(8), 1249–1267 (2009)
Acknowledgments
This work was supported by: FFG (Austrian Research Promotion Agency) project DECO, no. 846707; FWF (Austrian Science Fund) project ADDCompliance: I 2885-N33.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Ntentos, E., Zdun, U., Plakidas, K., Schall, D., Li, F., Meixner, S. (2019). Supporting Architectural Decision Making on Data Management in Microservice Architectures. In: Bures, T., Duchien, L., Inverardi, P. (eds) Software Architecture. ECSA 2019. Lecture Notes in Computer Science(), vol 11681. Springer, Cham. https://doi.org/10.1007/978-3-030-29983-5_2
Download citation
DOI: https://doi.org/10.1007/978-3-030-29983-5_2
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-29982-8
Online ISBN: 978-3-030-29983-5
eBook Packages: Computer ScienceComputer Science (R0)