konveyor/tackle-data-gravity-insights

Empirical study to understand both enterprise and data specific patterns in the wild

Opened this issue · 0 comments

Problem Statement and Research Gaps: In current state, there are two different strategies are mostly used to recommend partitions for microservices.
Dynamically running the application (Mono2Micro) and using the traces.
Statically exploring the application (can also be applied with dynamic tracing) (example, CARGO).

However, to the best of our knowledge, no study yet to recognize various patterns that could result into a better partitions. If there is, we can potentially build some light-weight pattern recognition and utilize them with dynamic tracing and/or static analysis-based approach to recommend better partitions. An example could be, presence of God class. It can either be copied to each microservice or keep an entirely different microservice, which would be always running (may be a potential candidate for serverless architecture).

Broader Steps:

  • Collection of a large monolithic Java dataset (different frameworks i.e., Spring, JDBC, JPA, JTA.)

  • Collect exhaustive list of metadata of the dataset to gather some high-level information.

  • Use the existing enterprise patterns and come up with new data centric patterns.

  • Build a light-weight pattern identifier.

  • Take a few representative examples and show how such patterns can lead to different characteristics of microservices.