  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.
