You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@fineract.apache.org by "Aman-Mittal (via GitHub)" <gi...@apache.org> on 2026/10/10 14:02:47 UTC

[I] Backend: enforce the CQRS and module conventions with ArchUnit, and burn down the frozen violations [fineract-consumer-facing]

Aman-Mittal opened a new issue, #186:
URL: https://github.com/apache/fineract-consumer-facing/issues/186

   `AGENTS.md` ("Backend conventions") defines how the BFF is laid out:
   - each feature has `command/` and `query/` sides, with no cross-side types;
   - Spring Modulith boundaries;
   - services are interfaces with `*Impl` classes, and controllers are dispatchers;
   - the query side is read-only, with `@Immutable` query entities;
   - naming suffixes;
   - no `@Repository` on Spring Data interfaces;
   - exceptions extend `AbstractConsumerException`;
   - test tiers.
   
   Today only Spring Modulith's `verify()` and a no-cross-side-imports rule check any of this; the rest is left to review.
   
   **Proposal:** add ArchUnit rules for every convention that can be checked from bytecode without false positives.
   - **Rules with no current violations** fail the build outright.
   - **Rules with existing violations are frozen:** the current violations are recorded in a committed violation store (`consumer/src/test/resources/archunit_store`).
     - A new violation fails the build.
     - A fixed violation is removed from the store on the next test run.
     - So the store can only shrink, the same way as the frontend's `eslint-suppressions.json` (#172).
   - **No production code changes.**
   
   This is done when the violation store is empty. The frozen rules and their violations are tracked as sub-issues.


-- 
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: issues-unsubscribe@fineract.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Re: [I] Backend: enforce the CQRS and module conventions with ArchUnit, and burn down the frozen violations [fineract-consumer-facing]

Posted by "Aman-Mittal (via GitHub)" <gi...@apache.org>.
Aman-Mittal closed issue #186: Backend: enforce the CQRS and module conventions with ArchUnit, and burn down the frozen violations
URL: https://github.com/apache/fineract-consumer-facing/issues/186


-- 
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: issues-unsubscribe@fineract.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org