edk12564 opened a new pull request, #72: URL: https://github.com/apache/fineract-consumer-facing/pull/72
Issues: https://github.com/apache/fineract-consumer-facing/issues/57, https://github.com/apache/fineract-consumer-facing/issues/56 # Summary In response to earlier feedback (https://github.com/apache/fineract-consumer-facing/pull/39), we have decided to implement Spring Modulith to enforce strict modularity rules. Features are considered either closed/open. Most features except infrastructure was set as open, with the only exceptions being the services and data directories of each closed feature. This allows for dependencies but only through interfaces like services and ports. This prevents overreliance on implementations and specific modules. Dependency Inversion was implemented for circular dependencies. Finally, ArchUnit, which came with Spring Modulith was used to write a test for CQRS enforcement within packages. This will help enforce CQRS principles as contributors grow. ## More details - added Spring Modulith dependency to handle modularity - added port/adapter structure for dependency inversion - restructured codebase to only expose data and services for each module - enforced open on data and services and closed on everything else for features with ConsumerModuleDetectionStrategy - enforced open on infrastructure - refactored liquibase migration to be module specific - refactored exceptions to use supplier pattern to prevent duplicated exceptions - extracted identity into its own module to conserve CQRS in authentication feature - moved enums to data instead of domain for cross module access - added ArchUnit to handle CQRS enforcement test with CqrsArchitectureTest - extract css to shared css directory in frontend -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
