Preview

Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS)

Advanced search

Domain-Driven Design in Microservices Architecture

https://doi.org/10.15514/ISPRAS-2024-36(6)-3

Abstract

With the increment in software development complexity, approaches such as Domain-Driven Design (DDD) are needed to tackle contemporary business domains. DDD is already being used in various software projects with different architectural styles. Although some studies have explored the decomposition of business domains or legacy monolithic systems into microservices, there is a lack of concrete information regarding the practical implementation of DDD in this architectural style. The paper systematizes findings on the purpose of using DDD, its patterns, associated technologies, and techniques to increase the clarity about the use of DDD in microservices-based systems development. A systematic literature review of 35 articles was conducted. Thematic analysis was employed to identify five high-order themes and 11 themes. Based on our analysis, we have concluded that microservice identification emerges as the primary motivation behind developers' adoption of DDD, but not the only usage of DDD reported in the literature. Finally, our analysis found benefits and challenges in the use of DDD in Microservices Architecture which are translated to opportunity areas for future works.

About the Authors

Josué SANGABRIEL-ALARCÓN
School of Statistics and Informatics, Universidad Veracruzana
Mexico

Software Engineer. Software Developer at Universidad Veracruzana, Mexico (University of Veracruz). Research interests: software architecture, software design, requirements engineering, data modeling.



Jorge Octavio OCHARÁN-HERNÁNDEZ
School of Statistics and Informatics, Universidad Veracruzana
Mexico

PhD in Computer Science, Associate Professor at the Facultad de Estadística e Informática, Universidad Veracruzana, Mexico (School of Statistics and Informatics, University of Veracruz) since 2017. Research interests: software architecture, requirements engineering, software engineering, API design.



Xavier LIMÓN
School of Statistics and Informatics, Universidad Veracruzana
Mexico

PhD in Artificial Intelligence, Associate Professor at Facultad de Estadística e Informática, Universidad Veracruzana, Mexico (School of Statistics and Informatics, University of Veracruz). Research interests: data mining, multiagent systems, distributed systems, software architecture.



María Karen CORTÉS-VERDÍN
School of Statistics and Informatics, Universidad Veracruzana
Mexico

PhD in Computer Science, Professor at School of Statistics and Informatics, Universidad Veracruzana, Mexico. Research interests: software product lines, software architectures, aspect-oriented software development, concern-oriented software development, software process, software quality, software modeling.



References

1. J. Sangabriel-Alarcón, J. O. Ocharán-Hernández, K. Cortés-Verdín, and X. Limón, “Domain-Driven Design for Microservices Architecture Systems Development: A Systematic Mapping Study,” in 2023 11th International Conference in Software Engineering Research and Innovation (CONISOFT), 2023, pp. 25–34.

2. E. Evans, “Domain-driven design: tackling complexity in the heart of software,” p. 529, 2004.

3. E. Evans, “Domain-Driven Design Reference: Definitions and Pattern Summaries”, 2014.

4. V. Khononov and J. Lerman, “Learning domain-driven design: aligning software architecture and business strategy”, p. 312, 2021.

5. V. Vernon, “Implementing Domain-Driven Design”, 2013.

6. V. Velepucha and P. Flores, “Monoliths to microservices-Migration Problems and Challenges: A SMS,” Proceedings - 2021 2nd International Conference on Information Systems and Software Technologies, ICI2ST 2021, pp. 135–142, Mar. 2021, doi: 10.1109/ICI2ST51859.2021.00027.

7. G. Liu, B. Huang, Z. Liang, M. Qin, H. Zhou, and Z. Li, “Microservices: Architecture, container, and challenges,” Proceedings - Companion of the 2020 IEEE 20th International Conference on Software Quality, Reliability, and Security, QRS-C 2020, pp. 629–635, Dec. 2020, doi: 10.1109/QRS-C51114.2020.00107.

8. R. Mubashir, J. Ahmed, F. Khakwani, and T. Rana, Microservices Architecture: Challenges and Proposed Conceptual Design. 2019.

9. S. Salii, J. Ajdari, and X. Zenuni, “Migrating to a microservice architecture: benefits and challenges,” 2023.

10. S. Newman, “Building microservices: Designing fine-grained systems (second edition),” pp. 1–10, 2021.

11. F. Rademacher, J. Sorgalla, and S. Sachweh, “Challenges of domain-driven microservice design: A model-driven perspective,” IEEE Softw, vol. 35, no. 3, pp. 36–43, May 2018, doi: 10.1109/MS.2018.2141028.

12. M. Tello-Rodríguez, J. O. Ocharán-Hernández, J. C. Pérez-Arriaga, X. Limón, and Á. J. Sánchez-García, “A Design Guide for Usable Web APIs,” Programming and Computer Software, vol. 46, no. 8, pp. 584–593, 2020, doi: 10.1134/S0361768820080241.

13. B. Jin, S. Sahni, and A. Shevat, “Designing Web APIs,” 2018.

14. A. Singjai, U. Zdun, and O. Zimmermann, “Practitioner Views on the Interrelation of Microservice APIs and Domain-Driven Design: A Grey Literature Study Based on Grounded Theory,” in Proceedings - IEEE 18th International Conference on Software Architecture, ICSA 2021, Institute of Electrical and Electronics Engineers Inc., Mar. 2021, pp. 25–35. doi: 10.1109/ICSA51549.2021.00011.

15. R. A. Schmidt and M. Thiry, “Microservices identification strategies: A review focused on Model-Driven Engineering and Domain Driven Design approaches,” in 2020 15th Iberian Conference on Information Systems and Technologies (CISTI), IEEE, 2020. Accessed: Nov. 13, 2022. [Online]. Available: https://ieeexplore-ieee-org.ezproxy.uv.mx/document/9141150/.

16. A. Macias, E. Navarro, C. Cuesta, and U. Zdun, “Architecting Digital Twins Using a Domain-Driven Design-Based Approach,” International Conference on Software Architecture (ICSA), no. 62, pp. 183–209, 2023, doi: 10.13039/501100011033.

17. C. Praschl, S. Bauernfeind, C. Leitner, and G. A. Zwettler, “Domain-Driven Design as Model Contract in Full-Stack Development,” in International Conference on Electrical, Computer, Communications and Mechatronics Engineering, ICECCME 2023, Institute of Electrical and Electronics Engineers Inc., 2023. doi: 10.1109/ICECCME57830.2023.10252654.

18. F. Rademacher, S. Sachweh, and A. Zündorf, “Towards a UML profile for domain-driven design of microservice architectures,” Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), vol. 10729 LNCS, pp. 230–245, 2018, doi: 10.1007/978-3-319-74781-1_17/COVER.

19. B. A. Kitchenham, D. Budgen, and P. Brereton, “Evidence-Based Software Engineering and Systematic Reviews,” 2015.

20. H. Zhang, M. A. Babar, and P. Tell, “Identifying relevant studies in software engineering,” Inf Softw Technol, vol. 53, no. 6, pp. 625–637, Jun. 2011, doi: 10.1016/j.infsof.2010.12.010.

21. C. Wohlin, “Guidelines for snowballing in systematic literature studies and a replication in software engineering,” in Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering - EASE ’14, New York, New York, USA: ACM Press, 2014, pp. 1–10. doi: 10.1145/2601248.2601268.

22. J. Popay et al., “Guidance on the conduct of narrative synthesis in systematic Reviews. A Product from the ESRC Methods Programme. Version 1,” undefined, 2006, doi: 10.13140/2.1.1018.4643.

23. D. S. Cruzes and T. Dybá, “Recommended steps for thematic synthesis in software engineering,” in International Symposium on Empirical Software Engineering and Measurement, IEEE Computer Society, 2011, pp. 275–284. doi: 10.1109/esem.2011.36.

24. V. Clarke and V. Braun, “Thematic analysis: A practical guide,” London: SAGE, 2021, Accessed: Oct. 30, 2023. [Online]. Available: https://uk.sagepub.com/en-gb/eur/thematic-analysis/book248481#description.

25. J. Sangabriel-Alarcón, J. O. Ocharán-Hernández, X. Limón, and K. Cortés-Verdín, “Domain-Driven Design in Microservices-Based Systems Development: A Systematic Literature Review and Thematic Analysis [Dataset].” [Online]. Available: https://zenodo.org/records/13294975.

26. PS-01. G.-C. Pan, P. Liu, and J.-J. Wu, “A Cloud-Native Online Judge System,” in 2022 IEEE COMPSAC, 2022, doi: 10.1109/COMPSAC54236.2022.00204.

27. PS-02. N. Ivanov and A. Tasheva, “A Hot Decomposition Procedure: Operational Monolith System to Microservices,” in 2021 IEEE ICAI, 2021, doi: 10.1109/ICAI52893.2021.9639494.

28. PS-03. M. I. Joselyne, G. Bajpai, and F. Nzanywayingoma, “A Systematic Framework of Application Modernization to Microservice-based Architecture,” in 2021 IEEE ICEET, 2021, doi: 10.1109/ICEET53442.2021.9659783.

29. PS-04. A. Singjai and U. Zdun, “Conformance Assessment of Architectural Design Decisions on the Mapping of Domain Model Elements to APIs and API Endpoints,” in 2022 IEEE ICSA-C, 2022, doi: 10.1109/ICSA-C54293.2022.00058.

30. PS-05. F. Rademacher, S. Sachweh, and A. Zündorf, “Deriving Microservice Code from Underspecified Domain Models Using DevOps-Enabled Modeling Languages and Model Transformations,” in 2020 IEEE SEAA, 2020, doi: 10.1109/SEAA51224.2020.00047.

31. PS-06. A. Steffens, H. Lichter, and J. S. Döring, “Designing a Next-Generation Continuous Software Delivery System: Concepts and Architecture,” in 2018 ACM Conference on Software Engineering and Applications, 2018, doi: 10.1145/3194760.3194768.

32. PS-07. Y. Ding et al., “Enterprise Service Application Architecture Based on Domain Driven Model Design,” in 2020 IEEE ITCA, 2020, doi: 10.1109/ITCA52113.2020.00167.

33. PS-08. P. Ray and P. Pal, “Extending the SEMAT Kernel for the Practice of Designing and Implementing Microservice-Based Applications using Domain Driven Design,” in 2020 IEEE CSEET, 2020, doi: 10.1109/CSEET49119.2020.9206200.

34. PS-09. A. Krause et al., “Microservice Decomposition via Static and Dynamic Analysis of the Monolith,” in 2020 IEEE ICSA-C, 2020, doi: 10.1109/ICSA-C50368.2020.00011.

35. PS-10. C.-Y. Li, S.-P. Tseng, and T.-W. Lu, “Microservice Migration Using Strangler Fig Pattern: A Case Study on the Green Button System,” in 2020 IEEE ICS, 2020, doi: 10.1109/ICS51289.2020.00107.

36. PS-11. A. Rahmatulloh et al., “Microservices-Based IoT Monitoring Application with a Domain-Driven Design Approach,” in 2021 IEEE ICADEIS, 2021, doi: 10.1109/ICADEIS52521.2021.9701966.

37. PS-12. M. I. Josélyne et al., “Partitioning Microservices: A Domain Engineering Approach,” in 2018 ACM Conference on Software Engineering and Applications, 2018, doi: 10.1145/3195528.3195535.

38. PS-13. M. Pham and D. B. Hoang, “SDN Applications - The Intent-Based Northbound Interface Realization for Extended Applications,” in 2016 IEEE NetSoft, 2016, doi: 10.1109/NETSOFT.2016.7502469.

39. PS-14. E. Cabrera et al., “Towards a Methodology for Creating Internet of Things (IoT) Applications Based on Microservices,” in 2020 IEEE SCC, 2020, doi: 10.1109/SCC49832.2020.00072.

40. PS-15. R. Petrasch, “Model-Based Engineering for Microservice Architectures Using Enterprise Integration Patterns for Inter-Service Communication,” in 2017 IEEE JCSSE, 2017, doi: 10.1109/JCSSE.2017.8025912.

41. PS-16. J. Dobaj et al., “A Microservice Architecture for the Industrial Internet-Of-Things,” in 2018 ACM Conference on Software Engineering and Applications, 2018, doi: 10.1145/3282308.3282320.

42. PS-17. S. Braun, A. Bieniusa, and F. Elberzhager, “Advanced Domain-Driven Design for Consistency in Distributed Data-Intensive Systems,” in 2021 ACM Conference on Software Engineering and Applications, 2021, doi: 10.1145/3447865.3457969.

43. PS-18. M. Khemaja, “Domain Driven Design and Provision of Micro-Services to Build Emerging Learning Systems,” in 2016 ACM Conference on Software Engineering and Applications, 2016, doi: 10.1145/3012430.3012643.

44. PS-19. Z. Li, “Using Public and Free Platform-as-a-Service (PaaS) Based Lightweight Projects for Software Architecture Education,” in 2020 ACM Conference on Software Engineering and Applications, 2020, doi: 10.1145/3377814.3381704.

45. PS-20. P. Oukes et al., “Domain-Driven Design Applied to Land Administration System Development: Lessons from the Netherlands,” in Land Use Policy, vol. 105, 2021, doi: 10.1016/j.landusepol.2021.105379.

46. PS-21. C. E. da Silva, Y. de Lima Justino, and E. Adachi, “SPReaD: Service-Oriented Process for Reengineering and DevOps,” in Software: Practice and Experience, 2022, doi: 10.1007/s11761-021-00329-x.

47. PS-22. C.-Y. Fan and S.-P. Ma, “Migrating Monolithic Mobile Application to Microservice Architecture: An Experiment Report,” in 2017 IEEE AIMS, 2017, doi: 10.1109/AIMS.2017.23.

48. PS-23. A. Krylovskiy, M. Jahn, and E. Patti, “Designing a Smart City Internet of Things Platform with Microservice Architecture,” in 2015 IEEE FiCloud, 2015, doi: 10.1109/FiCloud.2015.55.

49. PS-24. K. Zhang et al., “Design of Domain-Driven Microservices-Based Software Talent Evaluation and Recommendation System,” in 2022 IEEE ICEKIM, 2022, doi: 10.1109/ICEKIM55072.2022.00076.

50. PS-25. Q. Li, W. Sun, and R. Ma, “Sharing Platform of Digital Specimen of Wood Canker Based on WebGIS in Xinjiang Province: Architecture, Design and Implementation,” in 2022 IEEE CIPAE, 2022, doi: 10.1109/CIPAE55637.2022.00029.

51. PS-26. T. Raffin et al., “A Reference Architecture for the Operationalization of Machine Learning Models in Manufacturing,” in Procedia CIRP, vol. 2022, 2022, doi: 10.1016/j.procir.2022.10.062.

52. PS-27. C. Batista et al., “Towards a Multi-Tenant Microservice Architecture: An Industrial Experience,” in 2022 IEEE COMPSAC, 2022, doi: 10.1109/COMPSAC54236.2022.00100.

53. PS-28. C. Praschl et al., “Domain-Driven Design as Model Contract in Full-Stack Development,” in 2023 IEEE ICECCME, 2023, doi: 10.1109/ICECCME57830.2023.10252654.

54. PS-29. N. Legowo et al., “Designing Service Oriented Architecture Model in Sehatin Application with a Domain-Driven Design Approach,” in 2023 IEEE ICIMTech, 2023, doi: 10.1109/ICIMTech59029.2023.10278057.

55. PS-30. A. Macías et al., “Architecting Digital Twins Using a Domain-Driven Design-Based Approach,” in 2023, doi: 10.13039/501100011033.

56. PS-31. I. V. P. and V. P. H., “An Approach to Clean Architecture for Microservices Using Python,” in 2023 IEEE CSITSS, 2023, doi: 10.1109/CSITSS60515.2023.10334229.

57. PS-32. M. Saidi, A. Tissaoui, and S. Faiz, “A DDD Approach Towards Automatic Migration To Microservices,” in 2023 IEEE IC_ASET, 2023, doi: 10.1109/IC_ASET58101.2023.10150522.

58. PS-33. M. Camilli et al., “Actor-Driven Decomposition of Microservices through Multi-Level Scalability Assessment,” in 2023, doi: 10.1145/3583563.

59. PS-34. O. Özkan, Ö. Babur, and M. van den Brand, “Refactoring with Domain-Driven Design in an Industrial Context: An Action Research Report,” in Software: Practice and Experience, 2023, doi: 10.1007/s10664-023-10310-1.

60. PS-35. E. T. Nordli et al., “Migrating Monoliths to Cloud-Native Microservices for Customizable SaaS,” in Information and Software Technology, vol. 2023, 2023, doi: 10.1016/j.infsof.2023.107230.


Review

For citations:


SANGABRIEL-ALARCÓN J., OCHARÁN-HERNÁNDEZ J., LIMÓN X., CORTÉS-VERDÍN M. Domain-Driven Design in Microservices Architecture. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2024;36(6):39-58. https://doi.org/10.15514/ISPRAS-2024-36(6)-3



Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)