As the repository evolves, it becomes extremely hard to keep track of the various components that we have. We could have duplicate versions of the same component functionality which could get really chaotic with such an architecture. Exploring domain-driven design, or even adapting mono repos might be a promising alternative to explore but it is a herculean task to migrate the existing code base into a brand new architecture.