  While the recently emerged Microservices architectural style is widely
discussed in literature, it is difficult to find clear guidance on the process
of refactoring legacy applications. The importance of the topic is underpinned
by high costs and effort of a refactoring process which has several other
implications, e.g. overall processes (DevOps) and team structure. Software
architects facing this challenge are in need of selecting an appropriate
strategy and refactoring technique. One of the most discussed aspects in this
context is finding the right service granularity to fully leverage the
advantages of a Microservices architecture. This study first discusses the
notion of architectural refactoring and subsequently compares 10 existing
refactoring approaches recently proposed in academic literature. The approaches
are classified by the underlying decomposition technique and visually presented
in the form of a decision guide for quick reference. The review yielded a
variety of strategies to break down a monolithic application into independent
services. With one exception, most approaches are only applicable under certain
conditions. Further concerns are the significant amount of input data some
approaches require as well as limited or prototypical tool support.
