## 6 Discussion  
As we can see from Table 1, AE-K performs the poorest with 38.24% match with the ftgo-microservice. This outcome can be attributed to the utilization of the K-means algorithm in this approach. In the K-means algorithm, the assignment is hard, which means a particular class can only belong to a single microservice. Due to this, there are no duplicate classes in the decomposed microservice. However, if we observe the classes in the ftgo-microservice, we can see that it has duplicate classes in many services. This inability to assign a class to multiple microservices causes a lot of discrepancy between the ftgo-microservice and the results of AE-K, resulting in a lower percentage match. With a match percentage of 55.88% with the ftgo-microservice, the AE-C performs better than the AE-K. This is because this model uses the C-means algorithm to cluster the classes. The C-means algorithm considers the fuzziness of data point assignments. It assumes that a data point can have varying degrees of membership in multiple clusters. Due to this, a particular class may be assigned to more than one microservice, allowing duplicates in the microservice. The VAE-C performs the best with a match percentage of 73.53% with the ftgo-microservice. This is mainly because of two reasons. Similar to AE-C, VAE-C also uses the C-means algorithm to cluster the classes, allowing duplicates \begin{table}
\begin{tabular}{l c} \hline \hline
**Model** & **Match Percentage** \\ \hline AE-K & 38.24\% \\ AE-C & 55.88\% \\ VAE-C & 73.53\% \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Match percentage between ftgo-microservice and AE-K, AE-C, and VAE-C. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Microservice**Model** & **AE-K** & **AE-C** & **VAE-C** \\ \hline ftgo-order-service & 15 & 15 & 6 \\ \hline ftgo-restaurant-service & 0 & 3 & 9 \\ \hline ftgo-consumer-service & 1 & 2 & 7 \\ \hline ftgo-kitchen-service & 11 & 17 & 8 \\ \hline ftgo-delivery-service & 2 & 7 & 5 \\ \hline Total & 29 & 44 & 35 \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Classes in AE-K, AE-C, and VAE-C that are extra. \begin{table}
\begin{tabular}{l c} \hline \hline
**Model** & **Missing Percentage** \\ \hline AE-K & 61.76\% \\ AE-C & 44.12\% \\ VAE-C & 26.47\% \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Classes in ftgo-microservice that are missing in AE-K, AE-C, and VAE-C.  
in the microservice. The other reason is that we are using a variational autoencoder in this approach. VAEs create a more structured and meaningful latent space compared to traditional autoencoders. While standard autoencoders simply compress data into a latent vector without any constraint on how that space is organized, VAEs enforce the latent representations to follow a known probability distribution--typically a multivariate standard normal distribution. This regularization forces the model to place similar data points close to each other in the latent space, leading to smoother transitions and better clustering of classes. As a result, the latent space learned by a VAE is more informative and interpretable. Distances between points in this space carry semantic meaning, making operations like interpolation, sampling, and visualization more reliable. If we observe Table 3, we can see that AE-K assigns the least number of extra classes that were not present in the ftgo-microservice. This can again be attributed to the fact that AE-K does not allow the duplication of classes. Hence, it only has a limited number of classes to assign, and once a class is assigned to a microservice, it cannot be assigned to another microservice. On the other hand, both AE-C and VAE-C have higher values for extra classes than AE-K. This is because both AE-C and VAE-C allow the duplication of classes. A higher number of duplicate classes can either be a good or a bad thing, depending on the situation. Having more duplicate classes can help minimize inter-service communication, but it can also lead to increased maintenance overhead if those duplicate classes are edited frequently.