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

   ## Problem
   
   The consumer BFF uses a lot of memory for what it does:
   - Compose gives it a fixed `-Xmx768m` in a 2 GB container. Under the 
Cucumber suite it idles at about 750 MiB.
   - It generates a Feign client and models for the whole Fineract spec, 
roughly 150 API tags and 1,480 models, but uses 18 tags. Each generated client 
is a bean with its own child context at startup.
   - Request handling uses platform threads.
   - `spring.jpa.open-in-view` is left on, so a JDBC connection is held across 
every Fineract round trip. Under load, concurrency is then capped by the 
connection pool rather than by CPU or memory.
   
   A consumer-facing BFF should be cheap to run small and should use more of a 
bigger box without retuning.
   
   ## Proposal
   
   - Generate the Fineract client only for the tags the BFF (and the Cucumber 
seeder) use. Fail the build if a listed tag disappears.
   - Serve requests on virtual threads.
   - Turn off open-in-view.
   - Size the heap from the container limit (`MaxRAMPercentage`) in the image 
instead of a fixed `-Xmx`. Default the compose limit to 512 MB.
   
   ## Acceptance criteria
   
   - The full Cucumber suite passes with the BFF limited to 512 MB, with no OOM 
kills.
   - Raising the container limit raises the usable heap without config changes.
   
   Related: #45 (a GraalVM native image goes further, down to about 100 MB).


-- 
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