NODE.JS PROJECT ARCHITECTURE WITH SHARED DEPENDENCIES FOR MICROSERVICES

2023;
: pp. 53-58
1
Lviv Polytechnic National University
2
Lviv Politechnic National University

Microservices is an architectural style in software development that involves constructing a big solution using small, self-contained services. A set of services are connected via well-defined APIs and work together like a coherent system. The application of microservices architecture spans a wide range of domains, e.g., healthcare, finance, government, military, gaming, and entertainment. This article analyzes existing project architecture approaches for Node.js, and improves scalable project architecture for Node.js using shared dependencies. The proposed project architecture with shared module dependencies is explicitly created for Node.js microservice. Also, the article shows the results obtained from a test project that was created based on the proposed architecture.

[1] A. S. Abdelfattah, T. Cerny, Roadmap to Reasoning in Microservice Systems: A Rapid Review [J]. Applied Sciences, 13(3), 1838 (2023), DOI: 10.3390/app13031838, https://www.mdpi.com/2076-3417/13/3/1838

[2] G. Blinowski, A. Ojdowska, A. Przybyłek, Monolithic vs. Microservice Architecture: A Performance and Scalability Evaluation [J]. IEEE Access, 10, 20357-20374 (2022), DOI: 10.1109/ACCESS.2022.3152803, https://ieeexplore.ieee.org/abstract/document/9717259

[3] M. E. Gortney et al., Visualizing Microservice Architecture in the Dynamic Perspective: A Systematic Mapping Study [J]. IEEE Access, 10, 119999-120012 (2022), DOI: 10.1109/ACCESS.2022.3221130, https://ieeexplore.ieee.org/abstract/document/9944666

[4] A. Baabad, H. B. Zulzalil, S. Hassan, S. B. Baharom, Software Architecture Degradation in Open Source Software: A Systematic Literature Review [J]. IEEE Access, 8, 173681-173709 (2020), DOI: 10.1109/ACCESS.2020.3024671, https://ieeexplore. ieee.org/document/9200327

[5] H. Shah, Node.Js challenges in implementation [J], Global Journal of Computer Science and Technology, 17(2), 76 (2017), https://computerresearch.org/index.php/computer/ article/download/1735/1719

[6] Aniche, M., Bavota, G., Treude, C. et al. Code smells for Model-View-Controller architectures [J]. Empir Software Eng 23, 2121–2157 (2018). DOI: 10.1007/s10664-017-9540-2, https://link.springer.com/article/10.1007/s10664-017-9540-2 [7] F. Kaimer, P. Brune, Return of the JS: Towards a Node. jsBased Software Architecture for Combined CMS/CRM Applications [J]. Procedia Computer Science, 141, 454-459 (2018), DOI: 10.1016/j.procs.2018.10.143, https://www.sciencedirect. com/science/article/pii/S1877050918317927

[8] A. Sunardi, Suharjito, MVC Architecture: A Comparative Study Between Laravel Framework and Slim Framework in Freelancer Project Monitoring System Web Based [J]. Procedia Computer Science, 157, 134-141 (2019), DOI: 10.1016/j.procs.2019.08.150, https://www.sciencedirect.com/ science/article/pii/S1877050919310683

[9] K. Farias, L. Lazzari, Event-driven Architecture and REST Architectural Style: An Exploratory Study on Modularity [J]. Journal of Applied Research and Technology, 21(3), 338-351 (2023), DOI: 10.22201/icat.24486736e.2023.21.3.1764, https://jart.icat.unam.mx/index.php/jart/article/view/1764

[10] R. G. Kula, A. Ouni, D. M. German, K. Inoue, On the impact of micro-packages: An empirical study of the npm javascript ecosystem, arXiv preprint, arXiv:1709.04638 (2017), DOI: 10.48550/arXiv.1709.04638, https://arxiv.org/abs/ 1709. 04638