Aleks - were you still exploring introduction of Archunit
https://www.archunit.org/ as you had discussed as a means of providing a
way to check and enforce eager loading conditions, etc?

Ed

On Fri, Feb 4, 2022 at 8:33 AM Aleksandar Vidakovic <
[email protected]> wrote:

> ... I am currently working on 3 (integration-)test related PRs:
>
>    - add Cucumber support to have better interaction between people that
>    are less involved with the implementation side, but have great domain
>    specific knowledge (I'll explain a bit more when it's ready)
>    - add JMH Microbenchmarking support; this is something that could
>    actually help here (collateral management) to figure out any performance
>    related regressions
>    - add Gatling support; this one would improve visibility into our
>    integration tests; at the moment they are only used to verify if the
>    business logic is still working; with Gatling we could additionally get
>    some hints about performance; it's not "real world" (everything runs on
>    localhost), but big outliers should be visible and help avoid regressions
>
> ... JMH Microbenchmarking in the context of the collateral management
> module could really help finding any bottlenecks... and it's easy to write
> and run these tests.
>
> I can move this up my priority list if needed... just let me know.
>
> Cheers,
>
> Aleks
>
> On Fri, Feb 4, 2022 at 5:02 PM Ed Cable <[email protected]> wrote:
>
>> Welcome to the community Arnold and thanks for documenting clearly in the
>> JIRA ticket the extent of changes you would propose to ensure optimal
>> performance with the loan entity.
>>
>> Going forward, we want to ensure necessary automated checks are in place
>> for future pull requests to enforce eager versus lazy loading so we can
>> catch this before a contribution is merged and have a developer address it
>> accordingly. I believe Aleks is working on incorporating that into our
>> review process and the CI/CD and corresponding documentation will be
>> updated as those changes are made.
>>
>> I am tagging @Benura Abeywardena <[email protected]> as he was the
>> developer working on the collateral management module and hope that he has
>> some time to help complete the fixes you are suggesting and proposing.
>>
>> Ed
>>
>> On Fri, Feb 4, 2022 at 5:23 AM Bharath Gowda <[email protected]> wrote:
>>
>>> Hi Arnold,
>>>
>>> Thank you for surfacing this issue.
>>> Performance of the application is always an important aspect and any fix
>>> related to that is always welcome and good for the application's growth
>>>
>>> Attaching the full Functional Documents and Video links of the
>>> Collateral Module to help understand the feature while fixing the
>>> Performance issue
>>>
>>> In Summary, Collateral Module is Divided into 3 Levels
>>>
>>> • Product Level
>>> • Client Level
>>> • Loan Level
>>>
>>> At the product level, the user defines the Collateral required for the
>>> organization
>>>
>>> At the client level, the user adds the collateral which the client
>>> agrees to pledge
>>>
>>> At the Loan level, the user attaches the collateral to the loan which
>>> the client has pledged to get a loan.
>>>
>>> When the loan is repaid the collateral would be released from that loan
>>> account and would be again available to pledge for another loan for that
>>> client
>>>
>>>
>>> Full Functional Video of the feature is available here
>>> <https://drive.google.com/file/d/1r8Dxbf7ebzk4k1NR4a-rObz6LLAY3qqZ/view?usp=sharing>to
>>> view
>>>
>>>
>>>
>>> Regards,
>>> Bharath
>>> Lead Implementation Analyst | Mifos Initiative
>>> Skype: live:cbharath4| Mobile: +91.7019635592
>>> http://mifos.org  <http://facebook.com/mifos>
>>> <http://www.twitter.com/mifos>
>>>
>>>
>>> On Fri, Feb 4, 2022 at 4:03 PM Arnold Gálovics <[email protected]>
>>> wrote:
>>>
>>>> Hi everybody,
>>>>
>>>> Wanted to bring attention to the ticket I've just created on potential
>>>> performance improvements when it comes to Loans.
>>>> https://issues.apache.org/jira/browse/FINERACT-1496
>>>>
>>>> I've tried to write everything down into the ticket but let me try to
>>>> sum it up here.
>>>> Turns out the Loan entity has an EAGER relationship to the
>>>> LoanCollateralManagement entity which goes on and on and on. The full
>>>> relationship chain is Loan -> LoanCollateralManagement ->
>>>> ClientCollateralManagement -> CollateralManagementDomain ->
>>>> ApplicationCurrency
>>>>
>>>> These are all eagerly loaded relationships which definitely hurts the
>>>> performance to some degree.
>>>> I'm proposing that we shall take a look at it and potentially switch
>>>> from EAGER fetching to LAZY fetching hence making sure that the data gets
>>>> loaded only when it's required.
>>>>
>>>> Let me know your thoughts.
>>>>
>>>> Best,
>>>> Arnold
>>>>
>>>
>>
>> --
>> *Ed Cable*
>> President/CEO, Mifos Initiative
>> [email protected] | Skype: edcable | Mobile: +1.484.477.8649
>>
>> *Collectively Creating a World of 3 Billion Maries | *http://mifos.org
>> <http://facebook.com/mifos>  <http://www.twitter.com/mifos>
>>
>>

-- 
*Ed Cable*
President/CEO, Mifos Initiative
[email protected] | Skype: edcable | Mobile: +1.484.477.8649

*Collectively Creating a World of 3 Billion Maries | *http://mifos.org
<http://facebook.com/mifos>  <http://www.twitter.com/mifos>

Reply via email to