You are on page 1of 9

Mitigating Microservice Anti-patterns during the Pre-Migration

of Monolith Legacy Systems


Guilherme L. D. Villaca Ivonei F. da Silva Wesley K. G. Assunção
guidvillaca@gmail.com ifsse3@gmail.com wassuncao@inf.puc-rio.br
PPGComp – Western Paraná State PPGComp – Western Paraná State Pontifical Catholic University of Rio
University (UNIOESTE) University (UNIOESTE) de Janeiro - PUC-Rio
Cascavel, PR, Brazil Cascavel, PR, Brazil Rio de Janeiro, RJ, Brazil
ABSTRACT to complete rebuilding using new design techniques and technolo-
Microservice architectures are affected by anti-patterns, which are gies [57]. However, software modernization is a more cost-effective
bad implementation habits that affect software quality. In many approach [91]. Software modernization is one of the paths to be
cases, they have arisen due to errors in pre-migration planning taken, whether in the form of refactoring, remodeling, or migration
and incorrect execution during the migration phase from mono- to modern platform or paradigm such as microservices [11]. The
lithic systems to a microservice architecture. Anti-patterns must migration of monolithic legacy systems to microservices has been
be avoided in the early stages of the migration process because an industry trend in recent years, inspired by large companies like
they negatively impact the microservice architecture and cause Amazon, Linkedin, Netflix and others, and gaining popularity [91].
maintainability, management, and evolution issues. We address the The essence of microservices is to decompose the application’s com-
anti-patterns already catalogued in the literature and defines which ponents into small unities logically grouped as services, each one
ones can be mitigated through better pre-migration planning when running in its own process and communicating with lightweight
migrating from monolithic to microservice-based systems. We also mechanisms, usually an HTTP resource API [62].
present an exploratory study that examines existing strategies for Microservices are a good solution for the modernization of legacy
mitigating microservice anti-patterns during pre-migration. This systems [91]. However, this architectural style also suffers from the
study relies on multi-methods composed of a systematic literature so-called anti-patterns. Anti-patterns are bad practices that occur
mapping, a rapid review, and interviews with practitioners. As a during development and affect some quality attributes of the soft-
result, ten strategies were identified: DDD, strangler pattern, avoid ware such as understandability, testability, extensibility, reusability
tight coupling, backlog, group entities, business data, data first, and maintainability [82, 84]. Therefore, practitioners must carefully
clean architecture, twelve-factor App, and evolvability assurance. make proper decisions when migrating to microservices to avoid
some pains [54]. Potentially, some microservice anti-patterns can
KEYWORDS be mitigated since from the pre-migration/planning phase of the
migration. Based on this assumption, the aim of this research is to
mitigating, microservices, anti-patterns, pre-migration, monolith,
investigate what strategies can be used before the migration process
legacy systems
initiates, i.e., during the pre-migration, to mitigate microservice
ACM Reference Format: anti-patterns.
Guilherme L. D. Villaca, Ivonei F. da Silva, and Wesley K. G. Assunção. This study was guided to answer the following research ques-
2022. Mitigating Microservice Anti-patterns during the Pre-Migration of tion: Which actions in the pre-migration phase of legacy systems to
Monolith Legacy Systems. In Proceedings of Trilha de Trabalhos Técnicos microservices can be performed to mitigate anti-patterns? The aim is
(SBQS 2022). ACM, New York, NY, USA, 9 pages. https://doi.org/10.1145/ to gain a deep understanding of the challenges and solutions in this
nnnnnnn.nnnnnnn
matter. In the literature we can find few studies that discuss bad
smells and anti-patterns for microservices [12, 82, 84]. Some of these
1 INTRODUCTION studies propose solutions of anti-patterns in microservices systems
Due to extensive maintenance and evolution, monolithic legacy sys- without deeply discussing about the migration from monolithic
tems suffer degradation over time [91]. These problems usually oc- systems. For example, it was identified that some of anti-patterns
cur when architectural violations are introduced in the architecture are unique for microservices, that is, they are problems related to
and/or bad design decisions drive the software development [56]. To distributed systems, communication between microservices, use or
contain degradation, there are several approaches, as for example, lack of use of tools or patterns etc [82, 84]. Other anti-patterns were
considered that can be analyzed even with the monolithic system,
Permission to make digital or hard copies of all or part of this work for personal or and with a better planning or study/analysis can be mitigated when
classroom use is granted without fee provided that copies are not made or distributed the system with the architecture in microservices is ready [12].
for profit or commercial advantage and that copies bear this notice and the full citation However, none of these studies focused on strategies to be taken
on the first page. Copyrights for components of this work owned by others than ACM
must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, for the monolithic system before migrating to microservices.
to post on servers or to redistribute to lists, requires prior specific permission and/or a The main contribution of this work is to identify, understand,
fee. Request permissions from permissions@acm.org.
and describe strategies to mitigate anti-patterns. Thus, we help
SBQS 2022, July, 2022, Curitiba, PR
© 2022 Association for Computing Machinery. researchers and practitioners to analyze the monolithic system in
ACM ISBN 978-x-xxxx-xxxx-x/YY/MM. . . $15.00 terms of degradation, defects, and architectural design issues, as
https://doi.org/10.1145/nnnnnnn.nnnnnnn
SBQS 2022, July, 2022, Curitiba, PR Guilherme L. D. Villaca, Ivonei F. da Silva, and Wesley K. G. Assunção

well as to enable better planning in the pre-migration and migration These studies identified solutions to correct anti-patterns, but the
phases to microservices so that the microservice anti-patterns are solutions are in the context of microservices, without considering
minimized or mitigated. the migration process. There are some suggestions of anti-patterns
The remainder of this paper is structured as follows. Section that are closely related to the monolithic system and therefore
2 covers the study background. Section 3 introduces the study should be considered in the pre-migration phase. For example, Taibi
methodology. The results and the discussion are located in Section et al. discussed [82, 84]: wrong cuts, cyclic dependency, shared
4, respectively. Finally, Section 5 outlines overall conclusions and persistence, mega-service, shared libraries, microservice greedy,
directions for future work. and inappropriate service intimacy. However, some of these anti-
patterns may be exclusive to microservices and therefore cannot be
2 BACKGROUND considered when conducting the migration from monolithic legacy
systems, which is the goal of our work.
2.1 Monolithic Architecture and its
Modernization 2.4 Phases for Migration to Microservices
Monolithic architectures are rigid and tightly coupled. In this kind To migrate monolithic legacy systems to microservices, there are
of systems, any small change has challenges and a hard impact different phases that should be conducted. Wolfart et al. reported
on productivity, time, cost, and deployment. However, to supply four phases [91]: (i) Comprehension the monolithic legacy system;
business demands, currently software systems must be distributed, (ii) Definition of the microservice architecture; (iii) Execution of
scalable, and portable across different technologies and platforms. the transformation; (iv) Monitoring after the migration. In this
This complexity makes the development more complicated for de- study, among these four identified phases, the first two (i and ii)
velopers to change, test, and deploy systems in a short period of are considered pre-migration, as they are actions taken before the
time [34]. Monoliths suffer from degradation over time, which hap- migration of the monolithic system and when the modernization of
pens due to constant modifications in code, requirement changes, the software is considered. On the other hand, the last two phases
growing number of defects (bugs), and design problems. In addition, (iii and iv) refers to the migration and post-migration. The last
it can decrease software performance and substantially increase phase (iv) was not considered in this study.
evolutionary costs. In the software engineering, it is widely rec-
ommended that software systems must be continually adapted 3 METHODOLOGY
or enhanced to remain operational [43]. Software evolution has For the methodology, a multi-method was conducted with a sys-
three main activities: maintenance, modernization, and replacement. tematic literature mapping, a rapid review, interviews with practi-
Modernization is important to increase maintainability, increase tioners, and a thematic analysis.
flexibility, and reduce costs [17]. Based on that, monolithic sys-
tems are commonly modernized to microservices when [41]: (i) the 3.1 Systematic literature mapping
monolith became too big and complex to maintain or extend, (ii)
A systematic literature mapping (SLM) is used to identify, evaluate,
modularity and decentralization are an important aspect, and (iii)
and interpret all available research relevant to a particular research
the preference for long-term benefits over short-term.
question, topic, or phenomenon of interest [45]. The main RQ in
this study, and for the SLM, is: Which actions in the pre-migration
2.2 Microservices phase of legacy systems to microservices can be performed to mitigate
According to Fowler and Lewis, microservices consist of suites of anti-patterns? This research question is discussed from the view-
independently deployable services organized around business ca- points of the PICO structure [32]. According to PICO guidelines,
pability, automated deployment, intelligence in the endpoints, and we articulated the RQ in terms of its four anatomic parts: Prob-
decentralized control of languages and data [25]. Each microser- lem/Population, Intervention, Comparison, and Outcome (PICO).
vice focuses on providing a single business function and follows This facilitates searching for a precise RQ answer.
the principle of single responsibility [46]. The benefits of adopting
3.1.1 Search process. The primary studies was searched by fol-
a microservices architecture come with the complexities of dis-
lowing keywords: monolith, microservice; smell, anti-pattern, bad
tributed systems [12]. During the migration process, practitioners
practice, pitfall, refactor, reengineer, violation, defect and degrada-
often face common problems, which are due mainly to their lack of
tion. Search strings construction is based on research questions and
knowledge regarding good practices and patterns. The so called bad
PICO structure. They are assembled by using operators ANDs and
smells are indicators of situations that negatively affect software
ORs to merge keywords. Following the search strings used in this
quality attributes such as understandability, testability, extensibility,
review are listed: “( ( monolith* ) AND ( smell* OR anti-pattern* OR
reusability, and maintainability of the system under development
bad practice* OR pitfall* OR refactor* OR reengineer* OR violation
[82].
OR defect OR degradation ) AND ( microservice* OR micro-service*
OR "micro services" ) )”. The search process was conducted manu-
2.3 Microservices Anti-patterns ally and based on relevant digital libraries for software engineering
To help practitioners identify the potential pitfalls in microservices, literature. More specifically, we use: Scopus, IEEEXplore, Science
20 anti-patterns were identified [82, 84]. Carrasco2018 presented Direct, and Google Scholar.
five new architectural and four new migration bad smells found by The inclusion criteria (IC) for the papers selection were based
reviewing 58 different sources from academia and the gray literature. on: IC1 : the study outlines strategies to refactor monolithic systems
Mitigating Microservice Anti-patterns during the Pre-Migration of Monolith Legacy Systems SBQS 2022, July, 2022, Curitiba, PR

before migrating or upgrading to microservice; IC2 : the study de- • Is the subject “complex” and not solvable by considering
scribes challenges or recommendations to refactor the monolithic only the formal literature?
system before migrating or upgrading to microservices; IC3 : the • Is there a lack of volume or quality of evidence, or a lack of
study shows degradation conditions, failures or defects before mi- consensus of outcome measurement in the formal literature?
grating or upgrading from monolithic to microservices; IC4 : the • Is the contextual information important to the subject under
study presents tools or frameworks that assist or monitor defects in study?
the design of the monolithic system. The exclusion criteria (EC) to • Is it the goal to validate or corroborate scientific outcomes
discard studies were: EC1 : duplicated studies, whenever a certain with practical experiences?
study has been published in different publications, venues or search • Would a synthesis of insights and evidence from the indus-
engines (or databases); EC2 : the study is not a scientific research trial and academic community be useful to one or even both
article nor a conference article; EC3 : study is not written in English. communities?
As papers were read, exclusion/inclusion criteria must be obey
and, if any are achieved, it must be rejected but its details are 3.2.1 Rapid Review - Criteria. For this RR the inclusion criteria (IC)
kept in a reference repository system (spreadsheets) containing was: IC1 : blog posts, video, white paper; IC2 : practice experience
information to further analysis and research, when necessary. Our in migration from monolithic system to microservices; IC3 : tips,
search retrieved 513 primary sources, 62 of them from a previous suggestions, steps; IC4 : failures in microservices that are connected
study realized [91]. After applying the inclusion and exclusion with anti-patterns (that can be mitigated in monolithic) identified in
criteria, 55 studies remained [1–3, 5, 6, 8, 9, 12, 14–16, 19, 20, 22– mapping. For the exclusion criteria (EC): EC1 : create microservices
24, 26, 31, 35, 37, 39–42, 44, 46, 48, 49, 52, 53, 55, 57, 60, 63–66, 72– as a green development; EC2 : SOA, or any other service solution;
75, 77, 79, 81–90, 92, 93]. EC3 : only theoretical opinion, without practical experience; EC4 :
The data extraction forms was designed to collect all the infor- product marketing information recommendation content only.; EC5 :
mation needed to address the RQ and the study quality criteria. The no snowballing in links of articles, videos or blog posts; EC6 : tips,
following were extracted from each study: suggestions or experience in a brief or shallow manner; EC7 : video
without transcription; EC8 : Link unavailable/signature required;
• The study’s title and authors. EC9 : copy of another white paper without credit. The stop criteria
• The source (conference, journal, and so on). was the first 100 hits on Google.
• The year when the study was published. The search process was designed to use the same search string
• Classification (related work or approach). as the SLM. Google was used in this case, because Google Scholar
• Scope (Refactoring strategies, Modularization Techniques). was already used in SLM. With the search string most of the results
• The answers for research questions addressed by the publi- were similar to the mapping, but even so eight grey articles were
cation. collected. For the RR, we used a more direct and embracing search
• Summary (a summary with brief analysis, overview of its string: “migration from monolithic to microservice”. This string re-
weaknesses and strengths). trieved better results: 21 out of 100 analyzed links were relevant.
After analyzing the studies, they were categorized to facilitate Among the links, 80 ones pointed to a spreadsheet shared by soft-
the tabulation and subsequent comparative analysis that will appear ware engineering researchers who collect and fill in / update the
in Section 4 of this study. spreadsheet regularly, which we used for our analysis. In total, 109
articles were used for inclusion and exclusion criteria. After the
3.2 Rapid review on Gray Literature reading, 20 gray literature articles met the inclusion and exclusion
After the SLM, a rapid review (RR) was conducted. RRs are light- criteria [4, 21, 28–30, 33, 36, 47, 50, 51, 58, 61, 62, 67–71, 76, 78].
weight secondary studies focused on delivering evidence to prac-
titioners in a timely manner [13]. RRs tend to be more connected 3.3 Interviews with Practitioners
to practice, when compared to Systematic Reviews. The kick start The goal of the interviews is to explore the experiences and opin-
of a RR is a practical problem that exist in a software project. This ions of software engineers/developers who migrate systems from
particular problem must motivate researchers to screen the litera- monolithic to microservices. It can be considered primarily as being
ture looking for potential answers. As a consequence, researchers qualitative in nature. Semi-structured interviews are particularly
must work closely to practitioners to guarantee that the RR is close suitable for collecting qualitative data because they provide the
tied to a practical context [13]. opportunity for discussion or exploration of new topics that arise
Our RR was intended to search the Grey Literature that has been during data collection [59]. The purpose of this semi-structured
published by experts in the field regarding the pre-migration and interview is to understand the state of practice at the following
migration phase, enabling us to understand whether the results of points: (i) validity of the research, context of what can be done to
the mapping are similar or if they bring another perspective. Over mitigate anti-patterns, and if there is something to be done, which
recent years, Grey Literature stands out as an essential source of techniques and strategies; and (ii) Organizational context of the pre-
knowledge to be used alone or complementing research findings migration phase, if the necessary investments are made in training,
within the traditional literature [38]. specialized staff, infrastructure, planning, etc.
As indicated in [27], the responses that were a motivation for The interview on expert opinion can have high external validity,
conducting a grey literature review were Yes for the following good potential for theory generation, are straightforward to repli-
questions: cate, and are relatively cheap to organize. The main goal of this
SBQS 2022, July, 2022, Curitiba, PR Guilherme L. D. Villaca, Ivonei F. da Silva, and Wesley K. G. Assunção

interview is to confirm or refuse the insights and findings from the Table 1: Interview Questionnaire
systematic mapping study and rapid review, as well, as, to explore
more evidence from the experts. Id Grp Question
What was the motivation for you to consider the migration
3.3.1 Goal, Question and Metrics. To assist and guide the interview 1 1 from monolith to microservices in what was the context of
with practitioners in industry, we used the GQM approach. GQM the monolith?
represents a systematic approach for tailoring and integrating goals What were the steps to study/understand/research the
2 1
to models of the software processes, products and quality perspec- complexities of microservices? What training were done?
How many stakeholders participated in the pre-migration
tives of interest, based upon the specific needs of the project and the 3 1
and migration process?
organization [7]. GQM defines a certain goal, refines this goal into
How many microservices were planned in the pre-
questions, and defines metrics that should provide the information 4 1
migration phase?
to answer these questions [80]. Was any metric used to define the size of each
The basic template/guidelines for goal definition is to set a pur- 5 1 microservice? Ex: lines of code, number of features,
pose, perspective and environment [7]. For this research the goal classes, models, etc.
was defined as: (purpose) Understand practices done in mono- What is the estimated time for each phase of the pre-
lithic systems before migrating to microservices architecture for 6 1 migration and migration process? Planning, Study,
the purpose of characterization with respect to their effectiveness Refactoring, Implementation, etc.
for addressing the microservices anti-patterns (perspective) from What roles are involved? Software engineer/architect,
7 1
the point of view of experts in the area of migration from monolithic developer, responsible for infrastructure etc.
system to microservices architecture (environment) in the context What is the technology of the monolith? What technologies
are adopted for microservices? If it’s the same, why keep it?
of the software engineering community. For this goal, the following
8 1 if it changed, why did it change? If it changed how much
questions were raised: Q1 : What strategies are taken before the
time was considered/spent for the learning curve of the new
migration?. Q2 : What microservice anti-patterns are considered by technology, was investment made in hiring/training?
practitioner in the pre-migration?. Q3 : The mentioned strategies What is the level of knowledge and experience of the team
were addressed to mitigate any anti-patterns in microservices. 9 1 in relation to Object Orientation, design standards,
Once the goal was refined into a list of questions, metrics should microservices, distributed systems, etc.
be defined that provide all the quantitative information to answer Which projects have already participated? What were the
10 1
the questions in a satisfactory way. Therefore, metrics are a re- areas/domains? How many?
finement of questions into a quantitative process and/or product Did you know about existing anti-patterns in microservices
11 2
measurements. After all these metrics have been measured, suffi- before this interview? If so, which ones did you know?
cient information should be available to answer the questions [80]. In the pre-migration phase, was any action taken to address
In the metric definitions both quantitative metrics and qualitative anti-patterns? whether by studying what these anti-patterns
12 2
were in detail or any other approach? If yes, which anti-
metrics was used to take also a subject opinion of the intervie-
pattern was considered?
wees: (M1 ) Years of experience of the respondents. (M2 ) Understand
What were the steps to separate the monolith into
what were the motivations for the migration from monolithic to 13 2
microservices?
microservices. (M3 ) How was the study process. (M4 ) Members in 14 2 What was the approach to separating the database?
the migration team. (M5 ) How many microservices were planned. Has any refactoring technique or software been thought of
(M6 ) Metrics to defining the size of each microservice. (M7 ) What 15 2 to eliminate other anti-patterns, other than those related to
was the team’s preparation time. (M8 ) What were the technologies microservices, during pre-migration?
of the monolithic system and microservices. (M9 ) What were the What are your considerations regarding the pre-migration
domains of the system that was migrated to microservices. (M10 ) and migration phase, what are the difficulties/barriers
16 2
Which anti-patterns were known by the respondents before the envisioned and/or lessons learned that could be useful for
interview. (M11 ) Which anti-patterns were considered in the pre- future migrations to microservices?
migration phase. (M12 ) What were the approaches to separate the To conclude, in a possible new implementation, would
you consider developing a direct software in microservices
monolith or create the microservices and separate the database. 17 2
or would you prefer to develop in monolith and then
migrate? What are the reasons for your choice?
3.3.2 Questions. The interview questionnaire was composed of 17
questions, which are presented in Table 1. These questions were
defined around the GQM questions and metrics. The questions was
divided in two groups. The first group has open questions about
microservices, experience of the experts, knowledge about anti- affiliations [10]. These authors defined several guidelines for the se-
patterns in microservices. The second group was specific of this lection of experts. For this study, the main need was for experts with
research. We select the insights from the systematic mapping to hands-on experience and a wide perspective on the topic of this
develop each question. research, because the main requirement for selecting researchers
was knowledge and experience in migrating from monolithic to mi-
3.3.3 Expert selection. Brooks et al. recommend the selection of croservices. After analysis 11 interviewees were selected, of which
experts from industry and academia with different backgrounds and nine participated.
Mitigating Microservice Anti-patterns during the Pre-Migration of Monolith Legacy Systems SBQS 2022, July, 2022, Curitiba, PR

3.3.4 Interview Procedures. The interviews for this study were • Decomposition: In this category, we grouped studies that
carried out in November and December 2021. In all, seven inter- aimed to extract microservices from the monolithic system,
views were carried out, the first of which was carried out with using strategies or frameworks for this.
three respondents simultaneously. Of the nine people who partic- • Technical Debt: Studies dealing with problems of the mono-
ipated in the interview, one of them stood out in terms of length lith related to architectural defects, smells, the need for refac-
of experience, having more than 20 years of experience and hav- toring, and so on.
ing a management position. The others ranged in roles, developer, – Anti-patterns: Studies that focus on analyzing problems
software engineering, back-end developer, and architect software that occurred in the phase of migration from monoliths to
ranging from two to eight years of experience. microservices, which show a lack of understanding about
the complexity of microservices.
3.4 Thematic Analysis – Architectural debts: Studies that showed types of defects
Thematic analysis is an approach that is often used for identifying, related to the difficulty of maintaining a system.
analyzing, and reporting patterns (themes) within data in primary – Refactoring: Studies that show refactoring techniques or
qualitative research. It minimally organizes and describes the data strategies as a way to migrate the monolithic to microser-
set in rich detail and frequently interprets various aspects of the vices.
research topic. Thematic analysis can be used within different the- After organizing and separating the findings the following strate-
oretical frameworks, and it can be an essentialist or realist method gies emerged: adoption of Domain-Driven Design (DDD), adoption
that reports experience, meanings, and the reality of participants of the Evolvability Assurance, Strategy to Identify Tight Coupling,
[18]. Group Entities, and Classify Data in Business Subsystem. Each
The steps for thematic analysis are [18]: Extract Data, Code strategy was transformed in code (Table 2).
data, Translate codes into themes, Create a model of higher-order
themes, and Assess the trustworthiness of the synthesis. Codes are 4.2 Rapid Review Analysis
descriptive labels that are applied to segments of text from each When analyzing the texts, it was difficult to extract the strategies
study. Coding is the process of examining and organizing the data in order to answer our question. This is due to the novelty of this
contained in each study of the systematic review. A theme at a research, because the anti-patterns were only recently cataloged
minimum describes and organizes possible observations or at the and not all practitioners know them. For this reason it is not al-
maximum interprets aspects of the phenomenon. The themes that ways the case that practitioners reason on how to to mitigate such
emerged will be further explored and interpreted to create a model anti-patterns. But we were able to classify the information into
consisting of higher-order themes and the relationships between the following categories after a thorough analysis of the collected
them. The aim is to return to the original research questions and the responses:
theoretical interests that support them, and to approach them with • Log Aggregation: Use of a log tool to assist developers to
arguments based on the themes that emerged in the exploration of identify which bugs and functionalities that could be decom-
the texts. posed in microservices;
• Data: Look at data first, to analyze entities and group them
4 RESULTS AND ANALYSIS in subsystems;
In this section we discuss the results based on the evidence we • Coupling and Cohesion: Look at coupling and cohesion to
collected. A thematic synthesis map was created to graphically identify bottlenecks in the system, this category also could
represent the codes/themes and their relationships so that we can be related to refactoring in SLM categories;
answer the main research question. • Strangler Pattern: Strategy to decompose the monolithic in
migration phase, develop each functionality until the mono-
4.1 Systematic Literature Mapping Analysis lithic is extinct.
After the initial reading of the main points of each study, we used a • Modularization: Use of strategies, like DDD, for modular-
table with rows and columns, where the first column was the article ization. Category also founded in SLM.
ID and each subsequent column represented a research question. When analyzing each category, the following strategies emerged:
When analyzing the responses of the SLM, they were divided into Use of Backlog strategy, Look at data first, measure coupling and
categories that represented the study (by analysing title, abstract cohesion, use of strangler pattern and DDD for modularization.
and keywords of each study): Modularization, Decomposition, and Each strategy was transformed in code (Table 2).
Technical Debt. Within Technical Debt, three subcategories were
found: Anti-patterns, Architectural Debt, and Refactoring. 4.3 Interview Analysis
• Modularization: In this category, the primary sources were The interview analysis process was different because we did an-
grouped focusing on modularizing the monolithic system. other type of data collection, seeking initial information that could
We collected the strategies to achieve this goal and assist in help to understand the migration. Additionally, we considered the
the definition of each microservice. We noticed that there operational context of each interviewee. Thus, different categories
is a tendency to seek the modularized system, or even de- were observed, but not all of them were transformed into code. The
velop a modularized monolithic system in order to migrate categories defined were planning, anti-patterns knowledge, anti-
to microservices more easily in the future. patterns mitigate strategies, anti-patterns decomposition strategies
SBQS 2022, July, 2022, Curitiba, PR Guilherme L. D. Villaca, Ivonei F. da Silva, and Wesley K. G. Assunção

and lessons learned. The list of categories observed in the interviews Table 2: Methodology Codes
are as follows:
Code Description SLM RR I
• Planning: how was the planning process from pre-migration
and migration; Strategy to Ways to
• Anti-patterns knowledge: what was the knowledge of Identify Tight prevent high ✓
anti-patterns of interviewee and members; Coupling coupling in the system
• Anti-patterns mitigate strategies: what was the strategies Ways to separate
to mitigate anti-patterns; Classify DB in and classify tables
• Anti-patterns decomposition strategies: what was the Business of database based on ✓
strategies to decompose the microservices; Subsystem business
• Lessons learned: what was the lessons learned of the pre- Domain
migration and migration process. Ways to ensure
Group Entities group entities based ✓
Of the categories analysed the following strategies appear: DDD, on Business Domain
Clean Architecture and Twelve Factor App (Table 2). Use of methods,
and tools to
Evolvability
4.4 Themes Assurance
improve evolvability ✓
The codes founded in the three phases of this research (Table 2), long-term
were grouped and transformed in the themes [18], which are: mod- development
ularity, data and organization culture, as presented in Table 3. Measure Strategy to
Modularity includes DDD, which was mentioned in SLM, RR, coupling and Identify Tight ✓
and Interview; strangler pattern, identify tight coupling, and use cohesion Coupling
of backlog. Data includes group entities, classify DB in business Analyse entities
subsystem, and data first. Organizational Culture includes use of Look at data and group them in

clean architecture, twelve factor app, and evolvability assurance. first subsystems before
The process for thematic analysis is to reduce overlap and trans- looking at code
form codes into themes and then create models or high order themes. Extract each
For this research we did not feel the need for do this process of Use of strangler functionality until the

create a theme and then another high order themes, because we did pattern monolithic
not have enough data. Thus, from codes we could extract themes is extinct
and this make sense at the time [18]. Use of Backlog Use of a log

As presented in Figure 1, we grouped the codes into themes. Mod- strategy tool to assist developers
ularity was linked with Data because each module, or later each Using DDD for a
microservice, will have his own data, so it makes sense that these better understanding
strategies could be related, and on the other hand, this Databases DDD for Modu- of the domain and find
✓ ✓ ✓
strategies could not be inside Modularity theme because you look at larization the right
data before you look at the code, or at the system as a whole. Clean boundaries for each
Architecture was linked with DDD because this was mentioned in microservice
the interviews, as a strategy to take in parallel and more than a Create layered
strategy to create a microservice, clean architecture it is to imple- Clean architectures that are

ment in an intrinsic way inside the organization. The same way we Architecture simple and, easy
linked twelve factor app to data first, because makes sense to use a to maintain.
strategy that can help the organization to maintain the system in a 12 principles of
consistent manner, which means to start to use an approach and making software that
Twelve Factor
stick with it at the end. can be scaled quickly ✓
App
and maintained
in a consistent manner
Organizational
Data Modularity
Culture

Group Entities Data First Strangler Pattern DDD Clean Architecture


Evolvability

Classify DB in Business
Identify Tight Backlog
Assurance

4.5 Discussion
Coupling Twelve Factor App

Subsystem
The main research question came clear so that the use of some
strategies can help to mitigate anti-patterns in microservices. We
Figure 1: Thematic map of strategies to mitigate anti-patterns highlight the use of DDD [4, 24, 50, 62, 71, 77] or Strangler Pattern
in microservices [28, 47, 67, 78] to mitigate megaservice and wrong cuts.
Any of Data theme to mitigate shared persistence. Relational data
needs to be designed conceptually from the start, before one even
Mitigating Microservice Anti-patterns during the Pre-Migration of Monolith Legacy Systems SBQS 2022, July, 2022, Curitiba, PR

Table 3: Themes & Codes implementation time that would bring more respondents
into the study.
Theme Code SLM RR I
Modularity Domain-Driven Design ✓ ✓ ✓ 5 CONCLUSION
Strangler Pattern ✓ This study reported ways to mitigate anti-patterns in microservices
Identify Tight Coupling ✓ ✓ ✓ by first looking at the monolithic system before migration is initi-
Backlog ✓ ated. The assumption is that a monolithic system with problems,
Data Group Entities ✓ when modernized to a new architecture, could face similar prob-
Classify DB in Business lems in the future, i.e., a buggy system and the only thing that has
✓ ✓
SubSystem changed is the architecture. For this investigation, we conducted a
Data First ✓ multi-method study including a systematic literature mapping, a
Organizational rapid review, an interview, and a thematic analysis. We were able
Clean Architecture ✓
Culture to find ten strategies that can be used to mitigate the anti-patterns
Twelve Factor App ✓ revealed in this study.
Evolvability Assurance ✓ Microservices is still a new topic in the field of software engineer-
ing and there is still a lot of work emerging on this subject, perhaps
new anti-patterns will emerge in the future and this research needs
consider the placement and design of functions to carry out busi- to be revised and updated. It may also be necessary to start from the
ness processes [33]. Group entities strategy is to define similarity point of direct development in microservices and use the strategies
measures between domain entities and use a clustering algorithm mentioned in this research to see if anti-patterns can be mitigated.
that returns clusters of entities [72]. The strategies founded in this research can be validated in another
Each of the organizational culture themes can mitigate shared studies, like a case study, to see if the strategies can be applied,
libraries and cyclic dependencies as mentioned by the interviewees, what is the scenario that would be applied and what would be the
as well as concerns about maintaining and developing clean and results.
scalable code in the long term. The use of backlog strategy can also
mitigate megaservice and microservice greedy because you can REFERENCES
measure if a functionality uses few resources or if it can be aggre- [1] Manel Abdellatif, Anas Shatnawi, Hafedh Mili, Naouel Moha, Ghizlane El
Boussaidi, Geoffrey Hecht, Jean Privat, and Yann-Gaël Guéhéneuc. 2021. A
gated with another [62, 76]. Also identify tight coupling can help to taxonomy of service identification approaches for legacy software systems
mitigate shared libraries. When designing applications, avoid using modernization. Journal of Systems and Software 173 (2021), 110868. https:
library code that increases coupling between applications, so that //doi.org/10.1016/j.jss.2020.110868
[2] Muhammad Abdullah, Waheed Iqbal, and Abdelkarim Erradi. 2019. Unsupervised
developers building clients are free to make different technology Learning Approach for Web Application Auto-Decomposition into Microservices.
choices if that becomes advantageous [21]. Rewrite all services Journal of Systems and Software 151 (02 2019). https://doi.org/10.1016/j.jss.2019.
02.031
into microservices at once can be mitigated using strangler pattern [3] Mohammad Javad Amiri. 2018. Object-Aware Identification of Microservices.
[28, 47, 67, 78]. https://doi.org/10.1109/SCC.2018.00042
These strategies found in this study are not a guarantee to avoid [4] Philippe Assouline and Victor Grazi. 2017. Perspective on Architectural Fitness
of Microservices. https://www.infoq.com/articles/Microservices-Architectural-
anti-patterns, they are only ways to mitigate them. It is important Fitness/.
to keep in mind that these strategies must be taken along with [5] Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. 2015. Migrating to
good planning, team training, investment in consulting when pos- Cloud-Native Architectures Using Microservices: An Experience Report. https:
//doi.org/10.1007/978-3-319-33313-7_15
sible, and other measures that can ensure that the migration to [6] Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi. 2016. Microservices
microservices can be done gradually and with as few errors as Architecture Enables DevOps: an Experience Report on Migration to a Cloud-
Native Architecture. IEEE Software 33 (05 2016), 1–1. https://doi.org/10.1109/MS.
possible. 2016.64
[7] V.R. Basili and H.D. Rombach. 1988. The TAME project: towards improvement-
4.6 Limitations of the study oriented software environments. IEEE Transactions on Software Engineering 14, 6
(1988), 758–773. https://doi.org/10.1109/32.6156
The limitations of the proposed strategies for mitigate anti-patterns [8] Justus Bogner, Jonas Fritzsch, Stefan Wagner, and Alfred Zimmermann. 2019.
Assuring the Evolvability of Microservices: Insights into Industry Practices and
in microservices are listed as follows: Challenges. https://doi.org/10.1109/ICSME.2019.00089
• Strategies were defined at a high level, more information [9] Antonio Brogi, Davide Neri, Jacopo Soldani, and Olaf Zimmermann. 2019. Design
principles, architectural smells and refactorings for microservices: A multivocal
could be extracted in each step from the methodology, espe- review. (06 2019).
cially from the interviewees; [10] Andrew Brooks, John Daly, James Miller, Marc Roper, and Murray Wood. 1989.
• Each strategy could be more explored, e.g., more studies Reactor risk reference document - Technical Report NUREG-1150. Technical Report.
U.S. Nuclear Regulatory Commission, Office of Nuclear Regulatory Research,
from DDD could be analyzed and detailed strategies could Washington D.C.
be described; [11] Ivan Candela, Gabriele Bavota, Barbara Russo, and Rocco Oliveto. 2016. Using
Cohesion and Coupling for Software Remodularization. ACM Transactions on
• Strategies comparable to those that appeared in this study Software Engineering and Methodology (TOSEM) 25 (2016), 1 – 28.
could be analyzed, e.g., for clean architecture there would [12] Andrés Carrasco, Brent van Bladel, and Serge Demeyer. 2018. Migrating towards
be other strategies that could have the same effect. microservices: migration and architecture smells. 1–6. https://doi.org/10.1145/
3242163.3242164
• Although they produced good responses, the interviews con- [13] Soares S Cartaxo B., Pinto G. 2020. Rapid Reviews in Software Engineering.
ducted for this study could be done differently, with a longer (2020). https://doi.org/10.1007/978-3-030-32489-6_13
SBQS 2022, July, 2022, Curitiba, PR Guilherme L. D. Villaca, Ivonei F. da Silva, and Wesley K. G. Assunção

[14] Luiz Carvalho, Alessandro Garcia, Wesley K. G. Assunção, Rodrigo Bonifácio, [36] Thorben Janssen. 2021. From Monolith to Microservices – Migrating a Persistence
Leonardo P. Tizzei, and Thelma Elita Colanzi. 2019. Extraction of Configurable Layer. https://thorben-janssen.com/monolith-to-microservices-persistence-
and Reusable Microservices from Legacy Systems: An Exploratory Study. In layer/.
Proceedings of the 23rd International Systems and Software Product Line Conference [37] Wuxia Jin, Ting Liu, Qinghua Zheng, Di Cui, and Yuanfang Cai. 2018.
- Volume A (Paris, France) (SPLC ’19). Association for Computing Machinery, New Functionality-Oriented Microservice Extraction Based on Execution Trace Clus-
York, NY, USA, 26–31. https://doi.org/10.1145/3336294.3336319 tering. 211–218. https://doi.org/10.1109/ICWS.2018.00034
[15] Andreas Christoforou, Lambros Odysseos, and Andreas Andreou. 2019. Migration [38] Fernando Kamei, Igor Wiese, Crescencio Lima, Ivanilton Polato, Vilmar Nepo-
of Software Components to Microservices: Matching and Synthesis. In Proceedings muceno, Waldemar Ferreira, Márcio Ribeiro, Carolline Pena, Bruno Cartaxo,
of the 14th International Conference on Evaluation of Novel Approaches to Software Gustavo Pinto, and Sérgio Soares. 2021. Grey Literature in Software Engineer-
Engineering (Heraklion, Crete, Greece) (ENASE 2019). SCITEPRESS - Science and ing: A critical review. Information and Software Technology 138 (2021), 106609.
Technology Publications, Lda, Setubal, PRT, 134–146. https://doi.org/10.5220/ https://doi.org/10.1016/j.infsof.2021.106609
0007732101340146 [39] Alex Kaplunovich. 2019. ToLambda–Automatic Path to Serverless Architectures.
[16] Michel Cojocaru, Alexandru Uta, and Ana-Maria Oprescu. 2019. MicroValid: A In 2019 IEEE/ACM 3rd International Workshop on Refactoring (IWoR). 1–8. https:
Validation Framework for Automatically Decomposed Microservices. In 2019 IEEE //doi.org/10.1109/IWoR.2019.00008
International Conference on Cloud Computing Technology and Science (CloudCom). [40] Justas Kazanaviius and D. Mazeika. 2020. Analysis of Legacy Monolithic Software
78–86. https://doi.org/10.1109/CloudCom.2019.00023 Decomposition into Microservices. In Doctoral Consortium/Forum.
[17] Comella-Dorda, Wallnau, Seacord, and Robert. 2000. A survey of black-box mod- [41] Justas Kazanavičius and Dalius Mažeika. 2019. Migrating Legacy Software to
ernization approaches for information systems. In Proceedings 2000 International Microservices Architecture. In 2019 Open Conference of Electrical, Electronic and
Conference on Software Maintenance. 173–183. https://doi.org/10.1109/ICSM.2000. Information Sciences (eStream). 1–5. https://doi.org/10.1109/eStream.2019.8732170
883039 [42] Gabor Kecskemeti, A. Marosi, and A. Kertesz. 2016. The ENTICE approach to
[18] Daniela S. Cruzes and Tore Dyba. 2011. Recommended Steps for Thematic decompose monolithic services into microservices. 2016 International Conference
Synthesis in Software Engineering. In 2011 International Symposium on Empirical on High Performance Computing & Simulation (HPCS) (2016), 591–596.
Software Engineering and Measurement. 275–284. https://doi.org/10.1109/ESEM. [43] Ravi Khadka, Prajan Shrestha, Bart Klein, Amir Saeidi, Jurriaan Hage, Slinger
2011.36 Jansen, Edwin van Dis, and Magiel Bruntink. 2015. Does software modernization
[19] Saulo S. de Toledo, Antonio Martini, and Dag I.K. Sjøberg. 2021. Identifying deliver what it aimed for? A post modernization analysis of five software modern-
architectural technical debt, principal, and interest in microservices: A multiple- ization case studies. In 2015 IEEE International Conference on Software Maintenance
case study. Journal of Systems and Software 177 (2021), 110968. https://doi.org/ and Evolution (ICSME). 477–486. https://doi.org/10.1109/ICSM.2015.7332499
10.1016/j.jss.2021.110968 [44] Lisa J. Kirby, Evelien Boerstra, Zachary J.C. Anderson, and Julia Rubin. 2021.
[20] Utkarsh Desai, Sambaran Bandyopadhyay, and Srikanth Tamilselvam. 2021. Weighing the Evidence: On Relationship Types in Microservice Extraction. In
Graph Neural Network to Dilute Outliers for Refactoring Monolith Applica- 2021 IEEE/ACM 29th International Conference on Program Comprehension (ICPC).
tion. (02 2021). 358–368. https://doi.org/10.1109/ICPC52881.2021.00041
[21] Amit Deshpande and Nampreet Pal Singh. 2020. Challenges and pat- [45] Barbara Ann Kitchenham and Stuart Charters. 2007. Guidelines for performing
terns for modernizing a monolithic application into microservices. Systematic Literature Reviews in Software Engineering. Technical Report EBSE
https://developer.ibm.com/articles/challenges-and-patterns-for-modernizing- 2007-001. Keele University and Durham University Joint Report. https://www.
a-monolithic-application-into-microservices/. elsevier.com/__data/promis_misc/525444systematicreviewsguide.pdf
[22] Paolo Di Francesco, Patricia Lago, and Ivano Malavolta. 2018. Migrating Towards [46] Holger Knoche and Wilhelm Hasselbring. 2019. Drivers and Barriers for Mi-
Microservice Architectures: An Industrial Survey. In 2018 IEEE International croservice Adoption - A Survey among Professionals in Germany. 14 (01 2019),
Conference on Software Architecture (ICSA). 29–2909. https://doi.org/10.1109/ 1–35. https://doi.org/10.18417/emisa.14.1
ICSA.2018.00012 [47] Dmitry Kornilov. 2020. Monolithic to microservices: Design patterns to ensure mi-
[23] Daniel Escobar, Diana Cárdenas, Rolando Amarillo, Eddie Castro, Kelly Garcés, gration success. https://blogs.oracle.com/cloud-infrastructure/post/monolithic-
Carlos Parra, and Rubby Casallas. 2016. Towards the understanding and evo- to-microservices-how-design-patterns-help-ensure-migration-success.
lution of monolithic applications as microservices. In 2016 XLII Latin American [48] Dilshodbek Kuryazov, Dilshod Jabborov, and Bekmurod Khujamuratov. 2020.
Computing Conference (CLEI). 1–11. https://doi.org/10.1109/CLEI.2016.7833410 Towards Decomposing Monolithic Applications into Microservices. In 2020 IEEE
[24] Chen-Yuan Fan and Shang-Pin Ma. 2017. Migrating Monolithic Mobile Ap- 14th International Conference on Application of Information and Communication
plication to Microservice Architecture: An Experiment Report. In 2017 IEEE Technologies (AICT). 1–4. https://doi.org/10.1109/AICT50176.2020.9368571
International Conference on AI Mobile Services (AIMS). 109–112. https://doi.org/ [49] Rodrigo Laigner, Sergio Lifschitz, Marcos Kalinowski, Marcus Poggi, and Mar-
10.1109/AIMS.2017.23 cos Antonio Vaz Salles. 2019. Towards a Technique for Extracting Relational
[25] Martin Fowler. 2014. Microservices a definition of this new architectural term. Actors from Monolithic Applications. https://doi.org/10.5753/sbbd.2019.8814
http://martinfowler.com/articles/microservices.html. [50] Lavann, EdPrice, and neilpeterson. 2021. Migrate a monolith application to
[26] Andrei Furda, Colin Fidge, Olaf Zimmermann, Wayne Kelly, and Alistair Barros. microservices using domain-driven design. https://docs.microsoft.com/en-us/
2018. Migrating Enterprise Legacy Source Code to Microservices: On Multite- azure/architecture/microservices/migrate-monolith.
nancy, Statefulness, and Data Consistency. IEEE Software 35, 3 (2018), 63–72. [51] Grahan Lea. 2016. Why “Don’t Use Shared Libraries in Microservices” is Bad
https://doi.org/10.1109/MS.2017.440134612 Advice. https://www.grahamlea.com/2016/04/shared-libraries-in-microservices-
[27] Vahid Garousi, Michael Felderer, and Mika Mäntylä. 2017. Guidelines for includ- bad-advice/.
ing the grey literature and conducting multivocal literature reviews in software [52] Valentina Lenarduzzi, Francesco Lomio, Nyyti Saarimäki, and Davide Taibi. 2020.
engineering. (07 2017). Does Migrating a Monolithic System to Microservices Decrease the Technical
[28] Amit Goel. 202. CHOOSING THE RIGHT STRATEGY TO MIGRATE YOUR Debt? Journal of Systems and Software 169 (07 2020). https://doi.org/10.1016/j.
MONOLITHIC APPLICATION TO A MICROSERVICES-BASED ARCHITEC- jss.2020.110710
TURE. shorturl.at/deJV7. [53] Alessandra Levcovitz, Ricardo Terra, and Marco Valente. 2016. Towards a Tech-
[29] Amit Gupta. 2021. From Monolith to Microservices: An epic Migration nique for Extracting Microservices from Monolithic Enterprise Systems. (05
Journey. https://dzone.com/articles/from-monolith-to-microservices-an-epic- 2016).
migration-j. [54] Shanshan Li, He Zhang, Zijia Jia, Chenxing Zhong, Cheng Zhang, Zhihao Shan,
[30] Dan Haywood and Thomas Betts. 2017. In Defence of the Monolith, Part 1. Jinfeng Shen, and Muhammad Ali Babar. 2021. Understanding and addressing
https://www.infoq.com/articles/monolith-defense-part-1/. quality attributes of microservices architecture: A Systematic literature review.
[31] Alexis Henry and Youssef Ridene. 2020. Migrating to Microservices. Springer Information and Software Technology 131 (2021), 106449. https://doi.org/10.1016/
International Publishing, Cham, 45–72. https://doi.org/10.1007/978-3-030-31646- j.infsof.2020.106449
4_3 [55] David S. Linthicum. 2016. Practical Use of Microservices in Moving Workloads
[32] Xiaoli Huang, Jimmy Lin, and Dina Demner-Fushman. 2006. Evaluation of to the Cloud. IEEE Cloud Computing 3, 5 (2016), 6–9. https://doi.org/10.1109/
PICO as a Knowledge Representation for Clinical Questions. AMIA ... Annual MCC.2016.114
Symposium proceedings. AMIA Symposium (02 2006), 359–363. [56] Isela Macia, Joshua Garcia, Daniel Popescu, Alessandro Garcia, Nenad Med-
[33] Todd Hubers. 2021. How big is a microservice? https://medium.com/geekculture/ vidovic, and Arndt von Staa. 2012. Are Automatically-Detected Code Anom-
the-size-of-a-microservice-b9e6bc90475. alies Relevant to Architectural Modularity? An Exploratory Analysis of Evolv-
[34] B. Jambunathan and Kalpana Y. 2016. Multi cloud deployment with containers. 8 ing Systems. In Proceedings of the 11th Annual International Conference on
(02 2016), 421–428. Aspect-Oriented Software Development (Potsdam, Germany) (AOSD ’12). As-
[35] Andrea Janes and Barbara Russo. 2019. Automatic Performance Monitoring and sociation for Computing Machinery, New York, NY, USA, 167–178. https:
Regression Testing During the Transition from Monolith to Microservices. In //doi.org/10.1145/2162049.2162069
2019 IEEE International Symposium on Software Reliability Engineering Workshops [57] Prabal Mahanta and Suchin Chouta. 2020. Translating a Legacy Stack to Microser-
(ISSREW). 163–168. https://doi.org/10.1109/ISSREW.2019.00067 vices Using a Modernization Facade with Performance Optimization for Container
Mitigating Microservice Anti-patterns during the Pre-Migration of Monolith Legacy Systems SBQS 2022, July, 2022, Curitiba, PR

Deployments. 143–154. https://doi.org/10.1007/978-3-030-40907-4_14 2019).


[58] Sander Mak. 2017. Modules vs. microservices: Apply modular system design [82] Davide Taibi and Valentina Lenarduzzi. 2018. On the Definition of Microservice
principles while avoiding the operational complexity of microservices. https: Bad Smells. IEEE Software 35, 3 (2018), 56–62. https://doi.org/10.1109/MS.2018.
//www.oreilly.com/radar/modules-vs-microservices/. 2141031
[59] Christopher Marshall, Pearl Brereton, and Barbara Kitchenham. 2015. Tools to [83] Davide Taibi, Valentina Lenarduzzi, and Claus Pahl. 2017. Processes, Motivations
Support Systematic Reviews in Software Engineering: A Cross-Domain Survey and Issues for Migrating to Microservices Architectures: An Empirical Investi-
Using Semi-Structured Interviews. In Proceedings of the 19th International Con- gation. IEEE Cloud Computing 4 (10 2017). https://doi.org/10.1109/MCC.2017.
ference on Evaluation and Assessment in Software Engineering (Nanjing, China) 4250931
(EASE ’15). Association for Computing Machinery, New York, NY, USA, Article [84] Davide Taibi, Valentina Lenarduzzi, and Claus Pahl. 2019. Microservices Anti
26, 6 pages. https://doi.org/10.1145/2745802.2745827 Patterns: A Taxonomy. https://doi.org/10.1007/978-3-030-31646-4_5
[60] Genc Mazlami, Jürgen Cito, and Philipp Leitner. 2017. Extraction of Microservices [85] Davide Taibi and Kari Systä. 2019. From Monolithic Systems to Microservices: A
from Monolithic Software Architectures. In 2017 IEEE International Conference Decomposition Framework based on Process Mining. https://doi.org/10.5220/
on Web Services (ICWS). 524–531. https://doi.org/10.1109/ICWS.2017.61 0007755901530164
[61] Sam Newman and Leandro Guimarães. 2021. Migrating Monoliths to Microser- [86] Rafik Tighilt, Manel Abdellatif, Naouel Moha, Hafedh Mili, Ghizlane El-Boussaidi,
vices with Decomposition and Incremental Changes. https://www.infoq.com/ Jean Privat, and Yann-Gaël Guéhéneuc. 2020. On the Study of Microservices
articles/migrating-monoliths-to-microservices-with-decomposition/. Antipatterns: a Catalog Proposal. 1–13. https://doi.org/10.1145/3424771.3424812
[62] Sam Newman and Wes Reisz. 2020. Sam Newman: Monolith to Microservices. [87] Saulo Toledo, Antonio Martini, and Dag Sjøberg. 2020. Improving Agility by
https://www.infoq.com/podcasts/monolith-microservices/. Managing Shared Libraries in Microservices. 195–202. https://doi.org/10.1007/978-
[63] Luis Nunes, Nuno Santos, and António Silva. 2019. From a Monolith to a Mi- 3-030-58858-8_20
croservices Architecture: An Approach Based on Transactional Contexts. 37–52. [88] José Valdivia, Alonso Lora-Gonzalez, Xavier Limón, Karen Verdín, and Jorge
https://doi.org/10.1007/978-3-030-29983-5_3 Ocharán-Hernández. 2020. Patterns Related to Microservice Architecture: a
[64] Ilaria Pigazzini, Francesca Arcelli Fontana, and Andrea Maggioni. 2019. Tool Multivocal Literature Review. Programming and Computer Software 46 (12 2020),
Support for the Migration to Microservice Architecture: An Industrial Case Study. 594–608. https://doi.org/10.1134/S0361768820080253
In Software Architecture, Tomas Bures, Laurence Duchien, and Paola Inverardi [89] Andrew Walker, Dipta Das, and Tom Černý. 2020. Automated Code-Smell Detec-
(Eds.). Springer International Publishing, Cham, 247–263. tion in Microservices Through Static Analysis: A Case Study. Applied Sciences 10
[65] Ilaria Pigazzini, Francesca Arcelli Fontana, Valentina Lenarduzzi, and Davide (11 2020). https://doi.org/10.3390/app10217800
Taibi. 2020. Towards Microservice Smells Detection. In Proceedings of the 3rd [90] Yingying Wang, Harshavardhan Kadiyala, and Julia Rubin. 2021. Promises and
International Conference on Technical Debt (Seoul, Republic of Korea) (TechDebt challenges of microservices: an exploratory study. Empirical Software Engineering
’20). Association for Computing Machinery, New York, NY, USA, 92–97. https: 26 (07 2021). https://doi.org/10.1007/s10664-020-09910-y
//doi.org/10.1145/3387906.3388625 [91] Daniele Wolfart, Wesley K. G. Assunção, Ivonei F. da Silva, Diogo C. P. Domin-
[66] Zhongshan Ren, Wei Wang, Guoquan Wu, Chushu Gao, Wei Chen, Jun Wei, and gos, Ederson Schmeing, Guilherme L. Donin Villaca, and Diogo do N. Paza.
Tao Huang. 2018. Migrating Web Applications from Monolithic Structure to 2021. Modernizing Legacy Systems with Microservices: A Roadmap. In Eval-
Microservices Architecture. In Proceedings of the Tenth Asia-Pacific Symposium uation and Assessment in Software Engineering (Trondheim, Norway) (EASE
on Internetware (Beijing, China) (Internetware ’18). Association for Computing 2021). Association for Computing Machinery, New York, NY, USA, 149–159.
Machinery, New York, NY, USA, Article 7, 10 pages. https://doi.org/10.1145/ https://doi.org/10.1145/3463274.3463334
3275219.3275230 [92] Christian Zirkelbach, Alexander Krause, and Wilhelm Hasselbring. 2019. Modu-
[67] Chris Richardson. 2016. Refactoring a Monolith into Microservices. https://www. larization of Research Software for Collaborative Open Source Development. (07
nginx.com/blog/refactoring-a-monolith-into-microservices/. 2019).
[68] Chris Richardson. 2021. Refactoring a monolith to microservices. https: [93] C. Zirkelbach, Alexander Krause, and W. Hasselbring. 2019. On the Modulariza-
//microservices.io/refactoring/. tion of ExplorViz towards Collaborative Open Source Development.
[69] Wiebe Roos. 2020. Getting ready for microservices – strangling the mono-
lith. https://amazicworld.com/getting-ready-for-microservices-breaking-down-
the-monolith/.
[70] Bernd Ruecker. 2019. Complex Event Flows in Distributed Systems. https:
//www.infoq.com/presentations/event-flow-systems/.
[71] Vadim Samokhin. 2018. Why Microservices Fail. https://hackernoon.com/why-
microservices-fail-6cdc006f9540.
[72] Nuno Santos and António Rito Silva. 2020. A Complexity Metric for Microser-
vices Architecture Migration. In 2020 IEEE International Conference on Software
Architecture (ICSA). 169–178. https://doi.org/10.1109/ICSA47634.2020.00024
[73] Anika Sayara, Md. Shamim Towhid, and Md. Shahriar Hossain. 2017. A proba-
bilistic approach for obtaining an optimized number of services using weighted
matrix and multidimensional scaling. In 2017 20th International Conference of
Computer and Information Technology (ICCIT). 1–6. https://doi.org/10.1109/
ICCITECHN.2017.8281804
[74] Anfel Selmadji, Abdelhak Seriai, Hinde Bouziane, Christophe Dony, and Rahina
Mahamane. 2018. Re-architecting OO Software into Microservices: 7th IFIP WG 2.14
European Conference, ESOCC 2018, Como, Italy, September 12-14, 2018, Proceedings.
65–73. https://doi.org/10.1007/978-3-319-99819-0_5
[75] Atsushi Shimoda and Tsubasa Sunada. 2018. Priority Order Determination
Method for Extracting Services Stepwise from Monolithic System. In 2018 7th
International Congress on Advanced Applied Informatics (IIAI-AAI). 805–810. https:
//doi.org/10.1109/IIAI-AAI.2018.00165
[76] Sigma. 2021. MIGRATING MONOLITH TO MICROSERVICES: STEP-BY-STEP
GUIDE. https://sigma.software/about/media/migrating-monolith-microservices-
step-step-guide.
[77] Hugo Silva, Glauco Carneiro, and Miguel Monteiro. 2019. Towards a Roadmap for
the Migration of Legacy Software Systems to a Microservice based Architecture.
37–47. https://doi.org/10.5220/0007618400370047
[78] Alice Sitnikova. 2021. Monolith vs Microservices: Everything You Need To Know.
https://bambooagile.eu/insights/monolith-vs-microservices/.
[79] Jacopo Soldani, Damian Tamburri, and Willem-Jan Heuvel. 2018. The Pains and
Gains of Microservices: A Systematic Grey Literature Review. Journal of Systems
and Software 146 (09 2018). https://doi.org/10.1016/j.jss.2018.09.082
[80] Rini Solingen and Egon Berghout. 1999. The Goal/Question/Metric Method: A
Practical Guide for Quality Improvement of Software Development. (01 1999).
[81] Davide Taibi, Florian Auer, Valentina Lenarduzzi, and Michael Felderer. 2019.
From Monolithic Systems to Microservices: An Assessment Framework. (09

You might also like