As discussed with @tdutrion , the project is growing in size and is essentially a monolith. To prevent it from becoming spaghetti code and to keep a clean structure, we should take a more modular approach.
Larry Constantine's studies on software cohesion and coupling concluded that functional cohesion is the highest and most desirable form of cohesion. That is, organizing code and modules around functionalities and use cases. This is in line with DDD's notion of bounded contexts, then subdividing these contexts by functionality.
As discussed with @tdutrion , the project is growing in size and is essentially a monolith. To prevent it from becoming spaghetti code and to keep a clean structure, we should take a more modular approach.
Larry Constantine's studies on software cohesion and coupling concluded that functional cohesion is the highest and most desirable form of cohesion. That is, organizing code and modules around functionalities and use cases. This is in line with DDD's notion of bounded contexts, then subdividing these contexts by functionality.