So for my Masterthesis i have to decompose a set of monolithic industrial applications into microservices. The aim is to decompose the monoliths in to services that are as much reusable as possible. I have not found any research that tackles this Problem. Can someone guide me in the right direction on how to solve this problem ? Or maybe some possible ideas / related work ?
EDIT: to further clarify my question: The goal of the thesis is to improve the maintainability and flexibility of the applications. What i mean with flexibility is the ability to better react to changing requirements of the environment the software is running in. F.e. to have the possibility to run the application in the cloud or use a new technology in one of the services. Scalability is not an issue right now. Currently the applications are heavily bound to a proprietary image processing library. I will migrate 2 of the ~100 applications into a Service-oriented Architecture and i would like to know how i need to decompose the application so most of the services are also applicable to the other remaining applications. There are also alot of duplicate codes between these applications.
Regarding to DDD i'm not sure if its applicable to my application because the context is pretty "simple" (automatic optical inspection of PCB's). Also the application has from my understanding only one business capability: inspect PCBS. Maybe someone can tell me when DDD is applicable and when not. I don't have mutch understanding of it.
Thank you.