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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to