adamsaghy commented on code in PR #6031: URL: https://github.com/apache/fineract/pull/6031#discussion_r3481336992
########## fineract-doc/src/docs/en/modularization.adoc: ########## @@ -0,0 +1,142 @@ += Event-driven architecture for modular design + +== Summary + +Fineract's feature modules import each other's internal classes directly: loan reads +savings entities, savings calls accounting services, accounting depends on organisation +repositories. Two shared modules already exist to prevent this -- `fineract-core` (read-only +contracts) and `fineract-command` (write-side commands and events) -- but nothing enforces +their use, so the boundary has eroded. We propose to make those two modules the only +permitted cross-feature dependency: reads cross a boundary as a `fineract-core` interface +returning a DTO, writes cross as a `fineract-command` command or domain event. Every direct +feature-to-feature import is migrated to one of those two mechanisms, in risk order, and an +ArchUnit rule is activated in CI to keep the boundary from eroding again. A Spring Modulith Review Comment: We dont have any ArchUnit lib or rules... -- 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]
