<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Fri Feb 09 00:33:37 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary add field=key&field=summary to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>FOLIO Jira</title>
    <link>https://folio-org.atlassian.net</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>1001.0.0-SNAPSHOT</version>
        <build-number>100246</build-number>
        <build-date>07-02-2024</build-date>
    </build-info>

<item>
            <title>[UXPROD-3636] Define new transaction model to protect against parallel processing</title>
                <link>https://folio-org.atlassian.net/browse/UXPROD-3636</link>
                <project id="10000" key="UXPROD">UX Product</project>
                    <description>&lt;h2&gt;&lt;a name=&quot;Split%3A&quot;&gt;&lt;/a&gt;&lt;b&gt;Split:&lt;/b&gt;&lt;/h2&gt;

&lt;p&gt;This was split from 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UXPROD-3434&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-3434&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Implement new finance transaction model to protect against parallel processing&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            UXPROD-3434
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 to allow the team time to define an approach and implement a POC. The actual solution will need to be implemented in a following release. The decision was motivated by the time constraints surrounding the MG release&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Current situation or problem&lt;/b&gt;:&#160;When 2 users or separate mods run operations in parallel, they can send both summaries before sending the operations. mod-finance-storage is not saving previous summaries with the same id (which in practice is the order id for encumbrances), so one of the summaries sent will have no effect, resulting in an error for the second one:&lt;/p&gt;

&lt;p&gt;&quot;All expected transactions already processed&quot;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;In scope&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Implement a POC: Redesign transaction summaries to allow parallel usage. Using unique ids (as opposed to for instance order ids)&#160; could be part of the solution, but we don&apos;t want to accumulate too many records in the summary tables, so they would have to be deleted when no longer in use.&lt;/p&gt;

&lt;p&gt;&#160;When redesigning, care should be taken to avoid requiring a check for 404 errors, as was done in mod-orders&apos; &lt;a href=&quot;https://github.com/folio-org/mod-orders/blob/cef6cd4c4c24e514c6438d4f4327ec037d78b710/src/main/java/org/folio/service/finance/transaction/TransactionSummariesService.java#L79&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;TransactionSummariesService.java&lt;/a&gt; for 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;MODORDERS-545&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/MODORDERS-545&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Transaction log not updated when deleting a POL&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10303?size=medium&quot; /&gt;
            MODORDERS-545
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf&quot;&gt;Closed&lt;/span&gt;
            &lt;/span&gt;
 (normal operations should not report errors in the logs).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Out of scope&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Actual implementation of the chosen approach in the Finance app&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Use case(s)&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Proposed solution/stories&lt;/b&gt;&lt;br/&gt;
Wiki : &lt;a href=&quot;https://folio-org.atlassian.net/wiki/display/DD/Support+for+transaction+processing+by+two+or+more+users+in+parallel&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/wiki/display/DD/Support+for+transaction+processing+by+two+or+more+users+in+parallel&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Links to additional info&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Questions&lt;/b&gt;&lt;/p&gt;</description>
                <environment></environment>
        <key id="12393">UXPROD-3636</key>
            <summary>Define new transaction model to protect against parallel processing</summary>
                <type id="10002" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium">New Feature</type>
                            <parent id="12017">UXPROD-3442</parent>
                                    <priority id="10002" iconUrl="https://dev.folio.org/assets/jira-priority/jira-p3.svg">P3</priority>
                        <status id="6" iconUrl="https://folio-org.atlassian.net/images/icons/statuses/closed.png" description="The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.">Closed</status>
                    <statusCategory id="3" key="done" colorName="green"/>
                                    <resolution id="10000">Won&apos;t Do</resolution>
                                                        <assignee accountid="557058:2f7b6349-450b-419a-ba54-c181f51383ad">Dennis Bridges</assignee>
                                                                <reporter accountid="557058:2f7b6349-450b-419a-ba54-c181f51383ad">Dennis Bridges</reporter>
                                    <labels>
                            <label>acquisitions</label>
                            <label>tech-debt</label>
                    </labels>
                <created>Mon, 18 Apr 2022 15:10:56 +0000</created>
                <updated>Tue, 30 May 2023 15:11:42 +0000</updated>
                            <resolved>Tue, 30 May 2023 15:11:42 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                <comments>
                                                            <comment id="15172" author="557058:2f7b6349-450b-419a-ba54-c181f51383ad" created="Wed, 11 May 2022 14:15:43 +0000"  >&lt;p&gt;Moved to Nolana as this investigation could not be completed without more information. Developers recommended working on optimistic locking before parallel processing.&lt;/p&gt;</comment>
                                                            <comment id="15175" author="557058:2f7b6349-450b-419a-ba54-c181f51383ad" created="Mon, 4 Jul 2022 20:34:41 +0000"  >&lt;p&gt;Not likely that Jet will have capacity to work on this during Nolana as we need to review what the most critical areas are for improving the stability of financial transaction management in FOLIO before we proceed with more updates.&lt;/p&gt;</comment>
                                                            <comment id="15178" author="5a8c3089b01a4c302bf1bd1e" created="Tue, 30 May 2023 15:11:34 +0000"  >&lt;p&gt;This is deprecated by 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UXPROD-4321&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-4321&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Replace AllOrNothing mechanism to update all transactions for order/invoice in single operation &quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10322?size=medium&quot; /&gt;
            UXPROD-4321
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Open&lt;/span&gt;
            &lt;/span&gt;
.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10001">
                    <name>Cloners</name>
                                            <outwardlinks description="clones">
                                        <issuelink>
            <issuekey id="12200">UXPROD-3434</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                                                <inwardlinks description="is defined by ">
                                        <issuelink>
            <issuekey id="67389">MODFISTO-292</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67394">MODFISTO-297</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10057" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Development Team</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10185"><![CDATA[Thunderjet]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10014" key="com.pyxis.greenhopper.jira:gh-epic-link">
                        <customfieldname>Epic Link</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue key="$xmlutils.escape($text)">Budget management functionality that FOLIO needs to stay competitive</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10050" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Front End Estimate</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10094"><![CDATA[Out of scope]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10063" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>PO Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|i04hyy:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10069" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Cornell (Full Sum 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10214"><![CDATA[R2]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10046" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Release</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10061"><![CDATA[Nolana (R3 2022)]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 30 May 2023 15:11:34 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10025" key="com.atlassian.jira.ext.charting:timeinstatus">
                        <customfieldname>[CHART] Time in Status</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                    </customfields>
    </item>
</channel>
</rss>