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

Authors

  • Đorđe Krsmanović Autor

DOI:

https://doi.org/10.24867/30BE09Krsmanovic

Keywords:

software architecture, modular monolith, microservices architecture

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]

Published

2025-03-04

Issue

Section

Electrotechnical and Computer Engineering