Skip to main navigation menu Skip to main content Skip to site footer

Electrotechnical and Computer Engineering

Vol. 40 No. 03 (2025): Proceedings of the Faculty of Technical Sciences

DEVELOPMENT OF APPLICATION USING MODULAR MONOLITH ARCHITECTURE AND EXTRACTION OF MICROSERVICE FROM MODULE

  • Đorđe Krsmanović
DOI:
https://doi.org/10.24867/30BE09Krsmanovic
Submitted
March 4, 2025
Published
2025-03-04

Abstract

As part of this paper, a specification for an imaginary software system is created, which was developed using a modular monolith architecture. The system is sufficiently complex to simulate work on a real-world project. Subsequently, microservice was extracted from the module, transitioning the system to a microservice architecture. The goal of the thesis is to explore the challenges involved in transitioning from a modular monolith to a microservice architecture. The paper presents both architectures, focusing on communication methods and data handling. The development process is described, outlining the necessary steps for implementing the software system. The results of the work are illustrated using C4 diagrams, showcasing the changes that occur during the transition from a modular to a microservice architecture. Finally, the advantages and disadvantages of both architectures are discussed, along with recommendations for improving the process and suggestions for further research.

References

[1] Zvanična dokumentacija HTTP protokola, https://httpwg.org/specs/ [datum pristupa jul 2024]
[2] Microservices article, https://martinfowler.com/articles/microservices.html [datum pristupa jul 2024]
[3] Richardson, Leonard; Ruby, Sam (2007). RESTful Web Services. Sebastopol, California: O'Reilly Media
[4] Zvanična dokumentacija gRPC protokola, https://grpc.io/docs/ [datum pristupa jul 2024]
[5] Zvanična dokumentacija RabbitMQ, https://www.rabbitmq.com/docs [datum pristupa jul 2024]
[6] Zvanična dokumentacija ActiveMQ, https://activemq.apache.org/ [datum pristupa jul 2024]
[7] Zvanična dokumentacija Apache Kafka, https://kafka.apache.org/documentation/, [datum pristupa jul 2024]
[8] Zvanična dokumentacija .NET radnog okvira, https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotne [datum pristupa jul 2024]
[9] Zvanična dokumentacija Angular radnog okvira, https://v17.angular.io/docs [datum pristupa jul 2024]
[10] Eric Evans, Domain-Driven Design: Tackling Complexity in the Heart of Software
[11] Robert C. Martin, Clean Architecture: A Craftsman’s Guide to Software Structure and Design
[12] Zvanična dokumentacija C4 modela dijagrama, https://c4model.com/ [datum pristupa avgust 2024]