António Rito Silva

2papers

2 Papers

2.6SEMay 1
A Domain-Driven Design Simulator for Business Logic-Rich Microservice Systems

Daniel da Palma Pereira, António Rito Silva

Developing business-logic-rich microservices requires navigating complex trade-offs between data consistency and distributed coordination. Although patterns like Sagas and Transactional Causal Consistency (TCC) provide mechanisms to manage distributed state, validating their behavior before production is challenging. Current architectural simulators prioritize network metrics over domain semantics, whereas industry frameworks demand full-scale infrastructure deployments, preventing early architectural experimentation. To bridge this gap, we introduce a \textit{Domain-Driven Design} (DDD) microservice simulator that isolates core business logic from communication and transactional infrastructure. By modeling microservice systems around aggregates, the simulator allows developers to evaluate identical application code under varying consistency guarantees and network constraints. It features support for multiple transactional models (Sagas, TCC) and seamless transitions across diverse deployment topologies, ranging from centralized execution to fully distributed environments. We validate the simulator through the implementation and rigorous concurrency testing of a complex, multi-aggregate microservice system. Through empirical benchmarks, we quantify the performance, coordination overhead, and resilience of different transactional models across localized and distributed execution environments. The findings confirm that the simulator minimizes developer effort while providing a powerful, deterministic environment for the shift-left validation and optimization of business logic implementation in microservice architectures.

SEJan 17, 2022
Stepwise Migration of a Monolith to a Microservices Architecture: Performance and Migration Effort Evaluation

Diogo Faustino, Nuno Gonçalves, Manuel Portela et al.

The agility inherent to today's business promotes the definition of software architectures where the business entities are decoupled into modules and/or services. However, there are advantages in having a rich domain model, where domain entities are tightly connected, because it fosters an initial quick development. On the other hand, the split of the business logic into modules and/or services, its encapsulation through well-defined interfaces and the introduction of inter-service communication introduces a cost in terms of performance. In this paper we analyze the stepwise migrating of a monolith, using a rich domain object, into a microservice architecture, where a modular monolith architecture is used as an intermediate step. The impact on the migration effort and on performance is measured for both steps. Current state of the art analyses the migration of monolith systems to a microservices architecture, but we observed that migration effort and performance issues are already significant in the migration to a modular monolith. Therefore, a clear distinction is established for each one of the steps, which may inform software architects on the planning of the migration of monolith systems. In particular, the trade-offs of doing all the migration process or just migrating to a modular monolith.