Politecnico di Torino (logo)

Design and Implementation of Microservices Pattern in an Enterprise Environment

Setareh Askarifirouzjaei

Design and Implementation of Microservices Pattern in an Enterprise Environment.

Rel. Giovanni Malnati. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2023


With the growing demand for robust and scalable software systems in enterprise settings, a deeper understanding of distributed patterns becomes essential. This thesis investigates the design and implementation of microservices pattern using principles like Domain-Driven Design (DDD), Command Query Responsibility Segregation (CQRS), and Event Sourcing. It also studies the application of technologies such as Axon and the NATS messaging system, both of which can be employed in environments that require efficient management of high-volume events. The research presents a practical study of a system composed of four microservices, which communicate through events associated with Interception Related Information (IRI) and phone calls. Two methodologies are explored: the first uses Axon and its built-in event store, and the second involves the NATS messaging system, first using NATS as an event store, and then coupled with a PostgreSQL-based event store. These solutions are thoroughly compared, taking into account factors like event handling and indexing speed, cost-effectiveness, open-source availability, and alignment with DDD and Event Sourcing principles. The findings reveal the distinct advantages and limitations of both approaches, demonstrating their particular suitability in different operational scenarios. One of the crucial contributions of this thesis involves effective techniques for optimizing event processors and offering a detailed performance comparison of various event sourcing solutions. Comparative analyses demonstrated that Axon outperformed NATS when dealing with a consistent influx of a substantial number of events over an extended period. Interestingly, employing PostgreSQL as an event store with NATS significantly enhanced its performance. In conclusion, choosing between Axon, NATS, or a custom solution largely depends on the system’s unique demands, taking into account factors such as cost, performance, scalability, and the ability to handle the rate of incoming events. Accordingly, this thesis provides a valuable resource for experts aiming to design, implement, and optimize microservices using event-driven systems and event sourcing techniques. In doing so, it makes a substantial contribution to the field of distributed systems.

Relators: Giovanni Malnati
Academic year: 2022/23
Publication type: Electronic
Number of Pages: 81
Additional Information: Tesi secretata. Fulltext non presente
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: New organization > Master science > LM-32 - COMPUTER SYSTEMS ENGINEERING
Aziende collaboratrici: Rcs Etm Sicurezza Spa
URI: http://webthesis.biblio.polito.it/id/eprint/27691
Modify record (reserved for operators) Modify record (reserved for operators)