<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Database Schema Evolution in Microservices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Maxime André</string-name>
          <email>maxime.andre@unamur.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Vancouver, Canada</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Namur Digital Institute, Computer Science Faculty, University of Namur</institution>
          ,
          <addr-line>Rue Grandgagnage 21, 5000 Namur</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Microservices architecture has emerged as a dominant model for designing cloud-based applications. In this architecture, modular and heterogeneous services, independently deployed and sometimes geo-distributed, dynamically scale and interact with each other to respond to user requests. Typically, each service has its own database(s) and shares information through APIs calls. Facilitating software evolution is one of the main motivations for adopting a microservices architecture. Paradoxically, from a database point of view, recent surveys reveal that database schema evolution remains among the most pressing data management challenges for microservices architecture developers. While there are many tools available in the literature for supporting the evolution of microservices architecture, none of them is specifically designed to address the problem of database schema evolution. To tackle this challenge, the primary objective of this PhD thesis is to provide developers with a set of efective and eficient tools for automatically supporting database schema evolution in microservices architecture,</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>thereby reducing their burden in cloud-based applications evolution.
© 2023 Copyright for this paper by its authors. Use permitted under Creative Commons License pressing data management challenges for microservices
microservice, database schema, automated evolution</p>
    </sec>
    <sec id="sec-2">
      <title>1. Introduction</title>
      <sec id="sec-2-1">
        <title>Over the past few years, microservices architectures have</title>
        <p>
          gained significant popularity among developers and
industry leaders such as Netflix, Google, and Amazon, who
leverage this architectural style to design cloud-based
applications [
          <xref ref-type="bibr" rid="ref1 ref2 ref3">1, 2, 3</xref>
          ].
        </p>
        <p>A microservices architecture is defined by several key
properties.</p>
      </sec>
      <sec id="sec-2-2">
        <title>Modularity is the most commonly cited.</title>
        <p>
          Within this architectural style, microservices are
organized as a collection of small, loosely coupled
services, with each service managing its own
responsibilities and data, thus respecting separation of concerns
[
          <xref ref-type="bibr" rid="ref1 ref3 ref4 ref5 ref6 ref7 ref8">4, 5, 6, 3, 7, 1, 8</xref>
          ]. Another property is the use of
heterogeneous technologies. Specifically, each microservice
may be developed using a diverse set of polyglot and
hybrid technologies, including persistence technologies
such as relational and NoSQL databases. Each
microservice is technologically independent and manages its own
codebase and database(s) [
          <xref ref-type="bibr" rid="ref2 ref3 ref5 ref6 ref7 ref8 ref9">5, 8, 3, 6, 7, 9, 2</xref>
          ].
Furthermore, microservices should respect deployability
property. They are often deployed on public or private cloud
infrastructures, accompanied by mechanisms such as
autoscaling and geographic distribution. Each
microservice and its database(s) can be rapidly and independently
redeployed [
          <xref ref-type="bibr" rid="ref10 ref11 ref6 ref7">10, 6, 7, 11</xref>
          ]. Due to modularity property,
nEvelop-O
LGOBE
(M. André)
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Ops, and CI/CD methodologies, developers can quickly</title>
        <p>
          evolve and maintain microservices and databases by
detaching from certain constraints [
          <xref ref-type="bibr" rid="ref1 ref11 ref2 ref3 ref4 ref6">4, 6, 3, 11, 1, 2</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>Despite evolutivity property promises, microservices</title>
        <p>
          developers continue to face several issues, particularly in
regards to database management. Recent surveys reveal
that database schema evolution remains one of the most
architecture developers [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ].
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>2. Related work</title>
      <p>
        Indeed, practitioners often lack resources to assist
them in microservices evolution [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], especially in
regards to their databases. Developers have a real need To prepare that research, works related to microservices
of support tools able to understand, explicit, ensure, vi- and databases evolution have been reviewed. Even if
sualize and monitor, over time, databases, schemas, data, they do not focus on both microservices and databases
transactions, and constraints [
        <xref ref-type="bibr" rid="ref10 ref6 ref9">6, 10, 9</xref>
        ]. Particularly, it together, they represent good inspiration for reverse
enconcerns data replication, implicit constraints such as gineering, modeling, generation, evolution, visualization,
implicit foreign keys, message structure and database and monitoring of microservice databases.
schema change propagation distributed across several Reverse engineering. Reverse engineering of
mimicroservices [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ]. In that context, dealing with CAP croservices aims to recover a comprehensive holistic view
theorem [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and ensuring ACID is a true challenge [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. of an existing system. Various approaches exist for that
This is even more significant considering that modern purpose. Some authors exploit the version history by
systems employ hybrid databases composed of heteroge- mining software repositories to identify changes
helpneous database technologies, including NoSQL, particu- ing to understand the current version [
        <xref ref-type="bibr" rid="ref18 ref3">3, 18</xref>
        ]. Others
larly known for their absence of fully explicit schemas use techniques of static and dynamic analysis. In an
ofwhere consistency is usually delegated to client programs. fline and white-box approach, static analysis analyzes the
This complexifies modeling and evolution of database source code and API contract specifications. In a runtime
schemas, thereby further justifying the need for support and black-box approach, dynamic analysis inspects logs,
tools [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15</xref>
        ]. Moreover, even if DevOps gains in popu- deployment platform metrics, and any other traces. Both
larity, less attention is given to automation of database approaches are implemented in tools like MICROLYZE,
schema evolution [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. While microservices are often MicroART, Zipkin, etc. [
        <xref ref-type="bibr" rid="ref1 ref11 ref19 ref20 ref21 ref7">7, 11, 19, 1, 20, 21</xref>
        ]. Techniques
associated with quick and frequent releases, there is a and tools operate either at software or at infrastructure
potential risk of microservices dependencies breaking level [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. These approaches primarily examine
microserwhen introducing a change [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. This is particularly true vices architecture but lack of persistence perspective in
when modifications involve substantial database schema a distributed and heterogeneous context.
changes leading to an expensive cost and even a total Modeling. Modeling in the context of microservices
downtime [
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ]. Practitioners are directly afected by can serve for representing reverse engineering output or
those problems while spending precious time in manual simply for designing a new architecture. Additionally to
operations [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. traditional models such as UML, Archimate, and BPMN
      </p>
      <p>
        In that way, this research aims to answer this main [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], others are specifically dedicated to microservices.
research question: RQ. How to automate database Some propose to combine information from diferent
schema evolution in microservices architecture system layers such as instance, architectural and
infrasto reduce developers burden? The following sub- tructure layers [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] or service, infrastructure and
interacresearch questions structure the work in more details. tion layers [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Other focuses on distinction between
The first four ( ■ ) will be the focus of this thesis. Ac- abstract types of components and their concrete
deploycessorily, the last two (□ ), to be further refined, will be ment instance configurations [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Certain models lead
addressed collectively through collaborative work by the to the creation of Domain Specific Language (DSL) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In
RAINDROP project researchers. the same way, creating a modeling language specifically
for databases schemas is also studied. For instance, a DSL
■ SRQ1. [Reverse engineering]: How to automate exists for specifying hybrid polystores schemas [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] and
rsecvheermsea?engineering of a cross-microservices database another for abstracting database schema changes coupled
■ SmRicQro2s.ervi[cMesoddaetalibnagse]:schHemowa? to model a cross- taoppthroeapchro,gsormame rceosdeear[c2h3i]n.vFeisntaigllayt,esinhaowmteotad-emsiogdnewlinelgl
■ SRQ3. [Generation]: How to automate generation a modeling language in the context of cloud architecture
of artefacts according to a cross-microservice database [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. Despite interesting directions, no work considers
schema? modeling distributed and heterogeneous microservices
■ SRQ4. [Evolution]: How to automate evolution of and databases jointly.
      </p>
      <p>
        a cross-microservice database schema while propagat- Generation. Accordingly to modeling, DSLs ofer
caing changes? pabilities like code generation [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. For instance, a
mod□ SRQ5. [Visualization]: How to visualize a cross- eling language representing hybrid polystores schemas
microservice database schema? plans an extension able to generate data manipulation
□ SRQ6. [Monitoring]: How to monitor microservices APIs [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Again, no work is specifically dedicated to
architecture databases to prepare potential evolution microservice database artefact generation in a
heterogeof its schema? neous and distributed context.
      </p>
      <p>
        Evolution. Some evolution approaches suggest Microservices architecture Reverse engineering Reversereepnogritneering
reusing a model as a starting point for evaluating changes
impact between a current and a future version [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
Retrospectively and with support of reverse engineering, infor- Sources Rudnattiame
mation recovered is used for understanding architectural Microservices data
changes. Combining modeling and reverse engineer- meta schema Modeling
ing approaches help for decisions making (e.g., splitting
or merging microservices). Recovered indicators (e.g.,
size of a microservice, number of interfaces, coupling
index) take part in problem identification and change Generated code
impact evaluation [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Knowing that evolving microser- Generation
vices also means evolving their database(s), it is clear that
those techniques are relevant in the context of distributed
and heterogeneous microservice database schema evo- Evolution
lution. However, no work currently put together these recommendations Evolution
approaches and tools despite the need [
        <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
        ].
      </p>
      <p>
        Visualization. Many visualizations exist for
representing graphically microservices architecture. The most Evoluted system
tphoepuinlaterrtdaekpeetnhdeenfocriems o[1f1g,r2a5p]h. sDheipgehnlidgihntginognstpoeoclisfic,avllayri- Visualization visualization
ous visualizations are considered such as metaphor-based
visualization, 3D visualization, and virtual or augmented
reality visualizations. Visualization is closely linked to Monitoring report
modeling, sometimes being its graphical representation. Monitoring
Hence, some switch between diferent views and
combination of them like architectural, process, or data views
among many others depending on the targeted abstract
level [
        <xref ref-type="bibr" rid="ref19 ref21">19, 21</xref>
        ]. Unfortunately, these views stop at the
microservices level and do not go into the details of their Figure 1: Example of an evolution process supported by
envidistributed and heterogeneous databases. Visualizations sioned tools.
of databases exist but none are specifically applied to
microservices databases [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ].
      </p>
      <p>
        Monitoring. Microservices monitoring aims to col- Figure 1 illustrates an example of evolution process
lect real-time data (e.g., runtime metrics) for following up involving all support tools (that could be used
indepensystem behaviour. Even if tools and practices appear like dently without any order constraints).
reverse engineering, specifically for dynamic analysis, Reverse engineering. The reverse engineering tool
the approach is more centred on the instant. Goals are will help developers to analyze a given heterogeneous
mainly focused on microservice current state checking and distributed microservices architecture (sources and
and changes detection rather than documentation recov- runtime data) under a data-oriented vision (e.g., concepts,
ery. Monitoring is essential for preparing any evolution associations, constraints, database accesses, data
locawhile making decision based on data collected. Those tions, etc.) to produce a report as a basis for the
microsertasks are usually ensured by tools such as OpenTelemetry, vices data meta schema. The scientific result will be an
Kiali, Zipkin, Jaeger, Prometheus [
        <xref ref-type="bibr" rid="ref11 ref19 ref21">11, 19, 21</xref>
        ]. Regrettably, algorithm based on static and dynamic analyses.
analyses often ignore the database perspective. There Modeling. The modeling tool will help developers to
is a need for tools to monitor microservices messages model a microservices architecture, its components and
transit through the entire distributed and heterogeneous its (cross-)constraints, new or existing, to produce or edit
architecture, from API endpoints to inside the database. a microservices data meta schema. The scientific output
will be a DSL defining microservice data meta schemas
and evolution operators.
3. Research direction Generation. The generation tool will help
developers to generate, based on the microservices data meta
This PhD study aims to address weaknesses evoked in schema, useful generated code for microservices database
the related work by designing and developing support (e.g., database creation script, additional code for cross
tools for microservices database schema evolution. implicit constraints, etc.). The scientific output will be
an algorithm able to generate those artefacts.
      </p>
      <p>Evolution. The evolution tool will help developers to
evolve a cross microservices database schema based on
the microservices data meta schema. This process will
try to generate, based on evolution operators, what-if
scenarios and smells detected, recommendations (e.g.,
implicit constraint materialization, databases split, unused
data structure deletion, etc.) responding to developers
goals (e.g. consistency, performance, code quality, etc.).</p>
      <p>The scientific output will be an algorithm able to produce
those recommendations and integration in CI/CD tools.</p>
      <p>Visualization. The visualization tool will help
developers to provide visualizations of the current or evolved
microservices data meta schema and its details (e.g.,
implicit constraints, metrics, changes impact, etc.). The
scientific output will be several graphical models
customizable on purpose.</p>
      <p>Monitoring. The monitoring tool will help
developers in real-time microservice architecture monitoring
while producing a runtime data report (e.g., message
exchanges, microservices states, critical paths in calls, etc.)
specifically related to the microservices data meta schema.</p>
      <p>The scientific output will be several interactive graphical
models and monitoring algorithms.</p>
      <p>As highlighted, the backbone of this contribution is the
microservices data meta schema. This representation will
model all data-related aspects in a microservice
architecture. It will contribute in the whole evolution process of
microservices database schema through proposed tools
and across intermediary artefacts.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusion</title>
      <p>In summary, this PhD thesis aims to address challenges
related to automated database schema evolution in
microservices architecture. The research aims to provide
supporting tools reducing developers burden.
Specifically, the research will focus on automatic reverse
engineering, modeling, generation, evolution, visualization,
and monitoring of database schema in microservices. The
reverse engineering tool is currently under development
with focus on static analysis of JS REST APIs and NoSQL
databases.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgments</title>
      <sec id="sec-5-1">
        <title>This PhD project is part of the RAINDROP project studying cross-stack adaptations for the edgification of microservices. The project is supported by the subsidy ARC funded by the Wallonia-Brussels Federation (Belgium).</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G.</given-names>
            <surname>Granchelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Cardarelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Di Francesco</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Malavolta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Iovino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Di</given-names>
            <surname>Salle</surname>
          </string-name>
          ,
          <article-title>Towards recovering the software architecture of microservice-based systems</article-title>
          ,
          <source>in: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW)</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L. P.</given-names>
            <surname>Tizzei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Azevedo</surname>
          </string-name>
          , E. Soares,
          <string-name>
            <given-names>R.</given-names>
            <surname>Thiago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Costa</surname>
          </string-name>
          ,
          <article-title>On the maintenance of a scientific application based on microservices: an experience report</article-title>
          ,
          <source>in: 2020 IEEE International Conference on Web Services (ICWS)</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>102</fpage>
          -
          <lpage>109</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A. R.</given-names>
            <surname>Sampaio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kadiyala</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Steinbacher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Erwin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Rosa</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Beschastnikh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Rubin</surname>
          </string-name>
          ,
          <article-title>Supporting microservice evolution, in: 2017 IEEE international conference on software maintenance and evolution (ICSME)</article-title>
          , IEEE,
          <year>2017</year>
          , pp.
          <fpage>539</fpage>
          -
          <lpage>543</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lewis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Fowler</surname>
          </string-name>
          ,
          <article-title>Microservices: a definition of this new architectural term</article-title>
          ,
          <source>MartinFowler. com 25</source>
          (
          <year>2014</year>
          )
          <fpage>12</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Laigner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A. V.</given-names>
            <surname>Salles</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kalinowski</surname>
          </string-name>
          ,
          <article-title>Data management in microservices: State of the practice, challenges, and research directions</article-title>
          ,
          <source>Proc. VLDB Endow</source>
          .
          <volume>14</volume>
          (
          <year>2021</year>
          )
          <fpage>3348</fpage>
          -
          <lpage>3361</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>H.</given-names>
            <surname>Chawla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kathuria</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Chawla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kathuria</surname>
          </string-name>
          , Evolution of microservices architecture,
          <source>Building Microservices Applications on Microsoft Azure: Designing</source>
          , Developing, Deploying, and
          <string-name>
            <surname>Monitoring</surname>
          </string-name>
          (
          <year>2019</year>
          )
          <fpage>1</fpage>
          -
          <lpage>20</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bakhtin</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Al Maruf,
          <string-name>
            <given-names>T.</given-names>
            <surname>Cerny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Taibi</surname>
          </string-name>
          ,
          <article-title>Survey on tools and techniques detecting microservice api patterns</article-title>
          ,
          <source>in: 2022 IEEE International Conference on Services Computing (SCC)</source>
          , IEEE,
          <year>2022</year>
          , pp.
          <fpage>31</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>R. M.</given-names>
            <surname>Munaf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Ahmed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Khakwani</surname>
          </string-name>
          , T. Rana,
          <article-title>Microservices architecture: Challenges and proposed conceptual design</article-title>
          ,
          <source>in: 2019 International Conference on Communication Technologies (ComTech)</source>
          , IEEE,
          <year>2019</year>
          , pp.
          <fpage>82</fpage>
          -
          <lpage>87</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>X.</given-names>
            <surname>Zhou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Cao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Zhong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Shan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Babar</surname>
          </string-name>
          ,
          <article-title>Revisiting the practices and pains of microservice architecture in reality: An industrial inquiry</article-title>
          ,
          <source>Journal of Systems and Software</source>
          <volume>195</volume>
          (
          <year>2023</year>
          )
          <fpage>111521</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>D.</given-names>
            <surname>Abadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ailamaki</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Andersen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bailis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Balazinska</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Bernstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Boncz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chaudhuri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cheung</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Doan</surname>
          </string-name>
          , et al.,
          <source>The seattle report on database research</source>
          ,
          <source>Communications of the ACM</source>
          <volume>65</volume>
          (
          <year>2022</year>
          )
          <fpage>72</fpage>
          -
          <lpage>79</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>V.</given-names>
            <surname>Bushong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Abdelfattah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. A.</given-names>
            <surname>Maruf</surname>
          </string-name>
          ,
          <string-name>
            <surname>D. Das</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Lehman</surname>
            , E. Jaroszewski,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Cofey</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Cerny</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Frajtak</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Tisnovsky</surname>
          </string-name>
          , et al.,
          <article-title>On microservice analysis and architecture evolution: A systematic mapping study</article-title>
          ,
          <source>Applied Sciences</source>
          <volume>11</volume>
          (
          <year>2021</year>
          )
          <fpage>7856</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Conan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chabridon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Bojnourdi</surname>
          </string-name>
          , J. Ma,
          <article-title>Runtime models and evolution graphs for the version management of microservice architectures</article-title>
          ,
          <source>in: 2021 28th Asia-Pacific Software Engineering Conference (APSEC)</source>
          , IEEE,
          <year>2021</year>
          , pp.
          <fpage>536</fpage>
          -
          <lpage>541</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>B.</given-names>
            <surname>Mayer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Weinreich</surname>
          </string-name>
          ,
          <article-title>An approach to extract the architecture of microservice-based software systems</article-title>
          , in: 2018 IEEE symposium
          <article-title>on serviceoriented system engineering (SOSE)</article-title>
          , IEEE,
          <year>2018</year>
          , pp.
          <fpage>21</fpage>
          -
          <lpage>30</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Benats</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gobert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Meurice</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Nagy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          ,
          <article-title>An empirical study of (multi-) database models in open-source projects</article-title>
          , in: Conceptual Modeling: 40th International Conference, ER 2021,
          <string-name>
            <given-names>Virtual</given-names>
            <surname>Event</surname>
          </string-name>
          ,
          <source>October 18-21</source>
          ,
          <year>2021</year>
          , Proceedings 40, Springer,
          <year>2021</year>
          , pp.
          <fpage>87</fpage>
          -
          <lpage>101</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gobert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Meurice</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          ,
          <article-title>Hydra: A framework for modeling, manipulating and evolving hybrid polystores</article-title>
          ,
          <source>in: 2022 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>652</fpage>
          -
          <lpage>656</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>M. De Jong</surname>
          </string-name>
          , A. Van Deursen,
          <article-title>Continuous deployment and schema evolution in sql databases</article-title>
          , in: 2015 IEEE/ACM 3rd International Workshop on Release Engineering, IEEE,
          <year>2015</year>
          , pp.
          <fpage>16</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>A.</given-names>
            <surname>Maule</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Emmerich</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Rosenblum</surname>
          </string-name>
          ,
          <article-title>Impact analysis of database schema changes</article-title>
          ,
          <source>in: Proceedings of the 30th international conference on Software engineering</source>
          ,
          <year>2008</year>
          , pp.
          <fpage>451</fpage>
          -
          <lpage>460</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>D. A. d'Aragona</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          <string-name>
            <surname>Pascarella</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Janes</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Lenarduzzi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Taibi</surname>
          </string-name>
          ,
          <article-title>Microservice logical coupling: A preliminary validation</article-title>
          ,
          <source>in: 2023 IEEE 20th International Conference on Software Architecture Companion</source>
          (
          <string-name>
            <surname>ICSA-C)</surname>
          </string-name>
          , IEEE,
          <year>2023</year>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>85</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>T.</given-names>
            <surname>Cerny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. S.</given-names>
            <surname>Abdelfattah</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Bushong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. Al</given-names>
            <surname>Maruf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Taibi</surname>
          </string-name>
          ,
          <article-title>Microservice architecture reconstruction and visualization techniques: A review</article-title>
          ,
          <source>in: 2022 IEEE International Conference on Service-Oriented System Engineering (SOSE)</source>
          , IEEE,
          <year>2022</year>
          , pp.
          <fpage>39</fpage>
          -
          <lpage>48</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>T.</given-names>
            <surname>Cerny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Taibi</surname>
          </string-name>
          ,
          <article-title>Static analysis tools in the era of cloud-native systems (</article-title>
          <year>2022</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>M. E.</given-names>
            <surname>Gortney</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. E.</given-names>
            <surname>Harris</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Cerny</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Al Maruf,
          <string-name>
            <given-names>M.</given-names>
            <surname>Bures</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Taibi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Tisnovsky</surname>
          </string-name>
          ,
          <article-title>Visualizing microservice architecture in the dynamic perspective: A systematic mapping study</article-title>
          ,
          <source>IEEE Access</source>
          (
          <year>2022</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gobert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Meurice</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          ,
          <article-title>Conceptual modeling of hybrid polystores</article-title>
          , in: Conceptual Modeling: 40th International Conference, ER 2021,
          <string-name>
            <given-names>Virtual</given-names>
            <surname>Event</surname>
          </string-name>
          ,
          <source>October 18-21</source>
          ,
          <year>2021</year>
          , Proceedings 40, Springer International Publishing,
          <year>2021</year>
          , pp.
          <fpage>113</fpage>
          -
          <lpage>122</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>S.</given-names>
            <surname>Scherzinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Mauerer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kondylakis</surname>
          </string-name>
          , Debinelle:
          <article-title>Semantic patches for coupled database-application evolution</article-title>
          ,
          <source>in: 2021 IEEE 37th International Conference on Data Engineering (ICDE)</source>
          , IEEE,
          <year>2021</year>
          , pp.
          <fpage>2697</fpage>
          -
          <lpage>2700</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>A.</given-names>
            <surname>Alidra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Bruneliere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Ledoux</surname>
          </string-name>
          ,
          <article-title>A feature-based survey of fog modeling languages, Future Generation Computer Systems (</article-title>
          <year>2022</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>G.</given-names>
            <surname>Parker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Al Maruf,
          <string-name>
            <given-names>T.</given-names>
            <surname>Cerny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Frajtak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Tisnovsky</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Taibi</surname>
          </string-name>
          ,
          <article-title>Visualizing anti-patterns in microservices at runtime: A systematic mapping study</article-title>
          ,
          <source>IEEE Access</source>
          (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>L.</given-names>
            <surname>Meurice</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cleve</surname>
          </string-name>
          ,
          <article-title>Dahlia 2.0: A visual analyzer of database usage in dynamic and heterogeneous systems</article-title>
          ,
          <source>in: 2016 IEEE Working Conference on Software Visualization (VISSOFT)</source>
          ,
          <year>2016</year>
          , pp.
          <fpage>76</fpage>
          -
          <lpage>80</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>