<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Fri Feb 09 00:18:14 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-1752] Prevent update conflicts (via optimistic locking): platform support for detection</title>
                <link>https://folio-org.atlassian.net/browse/UXPROD-1752</link>
                <project id="10000" key="UXPROD">UX Product</project>
                    <description>&lt;p&gt;&lt;b&gt;NOTE:&lt;/b&gt; Optimistic locking is the solution described in this feature. Libraries ranked this based on the idea of preventing update conflicts, not necessarily based on the specific solution of optimistic locking.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Problem statement&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;In FOLIO, most storage modules follow the &quot;last writer wins&quot; strategy for handling record updates. From the UI perspective this may lead to a situation when a stale record (older version of a give record) previously loaded into the UI may override a more recent version on the server. Hence relevant updates may get lost in the process and the user is not made aware of what has happened.&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Scope:&lt;/b&gt;  The scope of this issue is to create platform support for optimistic locking which modules can make use of on a case-by-case basis (opt-in).  Focus of this feature is on simple &quot;detection&quot; and &quot;prevention&quot; (identifying when a collision has occurred and preventing it).  Additional tools and mechanisms for handling collisions when they occur (e.g. diffs, merges etc.)).  There are 3 phases, two of which are in scope for this feature:&lt;/p&gt;

&lt;ol&gt;
	&lt;li&gt;Detect collisions but do not prevent them. Just log in the system log that a mid-air collision has occurred. There is no instant benefit from this behaviour &#8212; the platform remains susceptible to collisions. But, once detection is deployed,  we can review the logs to evaluate how often collisions occur and which APIs are at risk.&lt;/li&gt;
	&lt;li&gt;Prevent an update when a collision gets detected. This builds on detection and additionally prevents the update from taking place. This is a &#8220;breaking&#8221; change from the API point of view: clients (end-users or batch processes alike) will start seeing an error returned (409 Conflict) when their update collides with another update. The immediate benefit is that we &#8220;protect&#8221; the system from collisions but we also create a fairly terrible user-experience  and probably &#8220;break&#8221; a lot of batch processes that right now happily update records because FOLIO is so forgiving.  This will be implemented as an opt-in feature so functional apps can implement when ready.&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;(Out of Scope):&lt;/b&gt; Tools. Built tools for handling the &#8220;409 Conflict&#8221; errors. It could be a simple &#8220;resubmit my changes anyway&#8221; button in the UI that lets the user to force their changes (risk for messing up is with the user) and a way to &#8220;retry&#8221; for batch processes.  It could also be something fancy when end-users can review the conflict and choose which changes to keep and which to drop, etc.&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;&lt;b&gt;Proposed solution&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;Handling of updates in FOLIO should rely on more explicit semantics, both in the storage (backend) APIs and the way it is communicated to the user through the UI.  &lt;/p&gt;

&lt;p&gt;From the storage and API perspective, optimistic locking is the proposed strategy to handle conflicts:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;optimistic locking&lt;/b&gt; &amp;#8211; each record state is marked with a &quot;version number&quot; (or a timestamp, hash, etc) which is returned to the client along with the record. The client includes the version number during the update and the server checks that the version hasn&apos;t changed before it writes the record back. If the record is dirty (version doesn&apos;t match) the update is aborted. In practice for a REST API (typical FOLIO uses case) this means using ETag with a combination of If-Match conditional request and 412 (precondition failed) and 409 (conflict) error codes.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In general, &lt;em&gt;optimistic locking&lt;/em&gt; is used when the risk of collisions (updates to the same record) is low and when the lock granularity is high ((ie duration of any given update is short).&lt;/p&gt;

&lt;p&gt;&lt;b&gt;Use cases collected from community&lt;/b&gt; &lt;font color=&quot;#d04437&quot;&gt;add others that seem likely&lt;/font&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Not frequent: 2 users editing the same record at the same time
	&lt;ul&gt;
		&lt;li&gt;User A and User B editing the same record at the same time (not frequent) &#8211; users, orders, instances, holdings, items, requests&lt;/li&gt;
		&lt;li&gt;User A editing an item and User B creating a request for that item&lt;/li&gt;
		&lt;li&gt;User A editing and item and User B putting that item on course reserve at the same time&lt;/li&gt;
		&lt;li&gt;User A editing an invoice and User B trying to approve the same invoice at the same time&lt;/li&gt;
		&lt;li&gt;User A editing an item and User B deleting the item before User A&apos;s edits are saved (see  
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UIIN-730&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UIIN-730&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Error message when item has been deleted from another window&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10300?size=medium&quot; /&gt;
            UIIN-730
        &lt;/a&gt;
                                                    &lt;span class=&quot;aui-lozenge aui-lozenge-subtle aui-lozenge-complete jira-macro-single-issue-export-pdf&quot;&gt;Blocked&lt;/span&gt;
            &lt;/span&gt;
)&lt;/li&gt;
		&lt;li&gt;User A editing a request and User B cancelling the request before User A&apos;s edits are saved (see 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UIREQ-344&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UIREQ-344&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Deleting already-deleted request causes ungraceful error&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10300?size=medium&quot; /&gt;
            UIREQ-344
        &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;
)&lt;/li&gt;
		&lt;li&gt;When attempting to update holdings and their items concurrently the holdings updates will ever so often interfere with the item updates, effectively nullifying the latter (see 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;MODINVSTOR-516&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/MODINVSTOR-516&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Cannot safely update holdings and items concurrently for any given instance&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;
            MODINVSTOR-516
        &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;
). This particular item is being addressed via 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;RMB-388&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/RMB-388&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;PostgresClient.getById with transaction, with &amp;quot;SELECT &#8230; FOR UPDATE&amp;quot;&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;
            RMB-388
        &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;
.&lt;/li&gt;
		&lt;li&gt;User A and User B generating a new number using the number generator for call number or accession number (number generator runs separate queries for selecting and incrementing the number (GBV); not relevant if FOLIO combines select and increment into one query) (not a challenge in FOLIO because the functionality does not exist)&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;More frequent: 1 user and system trying to act on the same record, either individual records or batch
	&lt;ul&gt;
		&lt;li&gt;User A editing a user and system batch process is updating lots of users&lt;/li&gt;
		&lt;li&gt;User A editing an instance/holding/item and data import updating the same record (consider the DI redesign that is taking place now)&lt;/li&gt;
		&lt;li&gt;User A editing an item and checkout trying to update the item status&lt;/li&gt;
		&lt;li&gt;User A editing an item and bulk renewal trying to update the item&lt;/li&gt;
		&lt;li&gt;User A editing a budget and system applying a transaction to that budget at the same time&lt;/li&gt;
		&lt;li&gt;User A editing an instance/holdings/item after data import ran in Preview mode but before the data import changes were committed&lt;/li&gt;
		&lt;li&gt;User A editing a request while the request is being expired (request expiration date or hold shelf expiration date) - &lt;em&gt;rare&lt;/em&gt;&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Two automated processes acting on the same record
	&lt;ul&gt;
		&lt;li&gt;Checkout happening and updating status on an item record at the same time as import updating the item&lt;/li&gt;
		&lt;li&gt;Data import happening at 2 libraries within the same tenant, affecting the same record (e.g. 5 Colleges processing new cataloging records)&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;b&gt;User impact&lt;/b&gt;&lt;/p&gt;

&lt;p&gt;This approach will not prevent collisions, but it would notify the user when they happen and offer them a choice.  Something like, &quot;Sorry AgentB has already updated the record and your working copy might not be up-to-date? Would you like to:&quot; (a) Update anyway (b) Reload.  &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;OL means that in certain situations the update operation will fail which needs to be communicated to the user, The UI should then allow the user to choose the next step, e.g by refreshing the state of the record in the browser and re-applying original changes.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;This situation can happen when multiple data imports are happening at the same time (or data import and a user acting on the same record at the same time) and can affect many records at the same time. Cleanup can then be very time-consuming and confusing.&lt;/p&gt;</description>
                <environment></environment>
        <key id="11061">UXPROD-1752</key>
            <summary>Prevent update conflicts (via optimistic locking): platform support for detection</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="11697">UXPROD-1814</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="10003">Done</resolution>
                                                        <assignee accountid="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d">Jakub Skoczen</assignee>
                                                                <reporter accountid="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d">Jakub Skoczen</reporter>
                                    <labels>
                            <label>Showstopper-Cornell</label>
                            <label>Support</label>
                            <label>platform-backlog</label>
                            <label>round_iv</label>
                    </labels>
                <created>Mon, 27 May 2019 14:14:19 +0000</created>
                <updated>Wed, 3 Jan 2024 17:00:17 +0000</updated>
                            <resolved>Tue, 20 Apr 2021 21:06:25 +0000</resolved>
                                                    <fixVersion>R1 2021</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>19</watches>
                                                                <comments>
                                                            <comment id="12414" author="5af5ed55244bc90a106063c7" created="Mon, 29 Jul 2019 17:28:12 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; I am assigning this to you as PO since it&apos;s Core Platform.  Can you add the PO rank?&lt;/p&gt;
</comment>
                                                            <comment id="12415" author="712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2" created="Wed, 15 Jan 2020 14:21:50 +0000"  >&lt;p&gt;Should w e add the NFR tag to this?&lt;/p&gt;</comment>
                                                            <comment id="12416" author="5af5e627525ba96b58654f12" created="Thu, 9 Apr 2020 16:53:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5af5ed55244bc90a106063c7&quot; class=&quot;user-hover&quot; rel=&quot;5af5ed55244bc90a106063c7&quot; data-account-id=&quot;5af5ed55244bc90a106063c7&quot; accountid=&quot;5af5ed55244bc90a106063c7&quot; rel=&quot;noreferrer&quot;&gt;Cate Boerema&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; class=&quot;user-hover&quot; rel=&quot;712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; data-account-id=&quot;712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; accountid=&quot;712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; rel=&quot;noreferrer&quot;&gt;Theodor Tolstoy (One-Group.se)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also added a note in the description that this may happen in cases of data import or batch editing, where large numbers of records may be affected at once. Based on convo at MM SIG today.&lt;/p&gt;

&lt;p&gt;cc: &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3Abe36acda-040d-4925-b3df-ebd7e16d4b5b&quot; class=&quot;user-hover&quot; rel=&quot;70121:be36acda-040d-4925-b3df-ebd7e16d4b5b&quot; data-account-id=&quot;70121:be36acda-040d-4925-b3df-ebd7e16d4b5b&quot; accountid=&quot;70121:be36acda-040d-4925-b3df-ebd7e16d4b5b&quot; rel=&quot;noreferrer&quot;&gt;lew235&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Afeab5085-6c56-4f4a-957a-74f0c1088b9c&quot; class=&quot;user-hover&quot; rel=&quot;557058:feab5085-6c56-4f4a-957a-74f0c1088b9c&quot; data-account-id=&quot;557058:feab5085-6c56-4f4a-957a-74f0c1088b9c&quot; accountid=&quot;557058:feab5085-6c56-4f4a-957a-74f0c1088b9c&quot; rel=&quot;noreferrer&quot;&gt;Christie Thomas&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Af80403de-e149-421e-8750-af45c853402f&quot; class=&quot;user-hover&quot; rel=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; data-account-id=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; accountid=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; rel=&quot;noreferrer&quot;&gt;Charlotte Whitt&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="12417" author="5c48911b54e1e6466b11f38c" created="Mon, 11 May 2020 18:19:40 +0000"  >&lt;p&gt;Asking same question as &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=712020%3A0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; class=&quot;user-hover&quot; rel=&quot;712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; data-account-id=&quot;712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; accountid=&quot;712020:0a02d059-b8b9-48b3-8a58-727ec44d05d2&quot; rel=&quot;noreferrer&quot;&gt;Theodor Tolstoy (One-Group.se)&lt;/a&gt; - is this NFR? It&apos;s shown up on the Round IV list, but this seems like tech debt and I&apos;m not sure how we would rank this other than go live.&lt;/p&gt;</comment>
                                                            <comment id="12418" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Wed, 17 Jun 2020 21:15:08 +0000"  >&lt;p&gt;Cornell comment from Round IV Outliers spreadsheet: This outlier is a showstopper for Cornell&lt;/p&gt;</comment>
                                                            <comment id="12419" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Fri, 4 Sep 2020 18:37:46 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5af5ed55244bc90a106063c7&quot; class=&quot;user-hover&quot; rel=&quot;5af5ed55244bc90a106063c7&quot; data-account-id=&quot;5af5ed55244bc90a106063c7&quot; accountid=&quot;5af5ed55244bc90a106063c7&quot; rel=&quot;noreferrer&quot;&gt;Cate Boerema&lt;/a&gt;:  As we are re-planning what was formerly Q4 2020 (and is now simply Iris), it seems that we should revisit this feature.  This is a go-live feature for every institution and is currently causing issues (see Support issue 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;MODINVSTOR-516&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/MODINVSTOR-516&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Cannot safely update holdings and items concurrently for any given instance&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;
            MODINVSTOR-516
        &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;
).  &lt;/p&gt;</comment>
                                                            <comment id="12421" author="5d6eeadef989e00d8c7e897b" created="Thu, 10 Sep 2020 15:15:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5af5ed55244bc90a106063c7&quot; class=&quot;user-hover&quot; rel=&quot;5af5ed55244bc90a106063c7&quot; data-account-id=&quot;5af5ed55244bc90a106063c7&quot; accountid=&quot;5af5ed55244bc90a106063c7&quot; rel=&quot;noreferrer&quot;&gt;Cate Boerema&lt;/a&gt; is there an update on this ticket - I am being asked about this on many fronts  &lt;/p&gt;</comment>
                                                            <comment id="12423" author="5af5ed55244bc90a106063c7" created="Fri, 11 Sep 2020 11:41:37 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5d6eeadef989e00d8c7e897b&quot; class=&quot;user-hover&quot; rel=&quot;5d6eeadef989e00d8c7e897b&quot; data-account-id=&quot;5d6eeadef989e00d8c7e897b&quot; accountid=&quot;5d6eeadef989e00d8c7e897b&quot; rel=&quot;noreferrer&quot;&gt;Anya&lt;/a&gt;.  I think &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; would be better positioned to provide an update.  I know this is being discussed regularly in TC and I think Core Platform is working on a design. Last I discussed with Jakub, we needed to (1) design and implement a platform solution (Core Platform team) and then (2) roll it out incrementally in FOLIO apps starting with Inventory (Core Functional etc).  I have already created a draft story for Inventory here: 
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UIIN-1245&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UIIN-1245&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Implement optimistic locking in Inventory&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10309?size=medium&quot; /&gt;
            UIIN-1245
        &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;
&lt;/p&gt;</comment>
                                                            <comment id="12424" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Mon, 14 Sep 2020 12:20:38 +0000"  >&lt;p&gt;Discussed at Capacity Planning Team meeting this morning...&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Jakub reports that the Spike for optimistic blocking (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;RMB-719&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/RMB-719&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;SPIKE: design protocol and implementation for optimistic locking&quot; &gt;
            &lt;img class=&quot;icon&quot; src=&quot;https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium&quot; /&gt;
            RMB-719
        &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;
) is almost done.  It should be available for the devs to start integrating in 2 weeks or so.  We will start by integrating it into one app and see what happens.  Won&apos;t be fully implemented everywhere in the Honeysuckle release but should be for Iris.&lt;/em&gt;&lt;/p&gt;</comment>
                                                            <comment id="12428" author="5d6eeadef989e00d8c7e897b" created="Wed, 16 Sep 2020 17:48:48 +0000"  >&lt;p&gt;There is a worry, that is being expressed to me, that the solution being proposed is to have better error messages... even though having better error messages are good - this doe not solve the issue of preventing or incorporating changes that are made when more than one user is editing a record. &lt;/p&gt;

&lt;p&gt;Please help me understand the proposed solution(s) for this issue. &lt;/p&gt;</comment>
                                                            <comment id="12432" author="63e2a2771b13d42998e4e706" created="Thu, 17 Sep 2020 10:47:39 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5d6eeadef989e00d8c7e897b&quot; class=&quot;user-hover&quot; rel=&quot;5d6eeadef989e00d8c7e897b&quot; data-account-id=&quot;5d6eeadef989e00d8c7e897b&quot; accountid=&quot;5d6eeadef989e00d8c7e897b&quot; rel=&quot;noreferrer&quot;&gt;Anya&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;the solution being proposed is to have better error messages&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I&apos;m not sure where folks have got their understanding of this from. In the current system, most of the time when two potentially conflicting changes are made, there wouldn&apos;t be an error at all.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Please help me understand the proposed solution(s) for this issue.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;There are ongoing conversations about the specifics of the solution.&lt;/p&gt;

&lt;p&gt;I&apos;ll try to share my understanding of the general approach being taken.&lt;/p&gt;

&lt;p&gt;Let&apos;s say we have two users, Bob and Alice, editing the same instance record, Harry Potter and the Goblet of Fire. &lt;/p&gt;

&lt;p&gt;They both started around the same time (and their starting points were the same).&lt;/p&gt;

&lt;p&gt;They both make unrelated changes to the record. Bob saves the record first and then Alice.&lt;/p&gt;

&lt;p&gt;In the current system, Alices changes are remembered, and Bob&apos;s are likely lost.&lt;/p&gt;

&lt;p&gt;In the proposed solution, Bob&apos;s changes would be remembered, and Alice would receive an error that the record had changed since she started editing it.&lt;/p&gt;

&lt;p&gt;Does that make sense?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; Does that match your understanding of the general approach?&lt;/p&gt;</comment>
                                                            <comment id="12437" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Thu, 17 Sep 2020 11:18:05 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5d6eeadef989e00d8c7e897b&quot; class=&quot;user-hover&quot; rel=&quot;5d6eeadef989e00d8c7e897b&quot; data-account-id=&quot;5d6eeadef989e00d8c7e897b&quot; accountid=&quot;5d6eeadef989e00d8c7e897b&quot; rel=&quot;noreferrer&quot;&gt;Anya&lt;/a&gt; Yes, it&apos;s correct that the changes proposed here would result a prevention of mid-air collision by rejecting updates. It does not address specific functionality for automatically incorporating changes to a single record made by multiple users.&lt;/p&gt;</comment>
                                                            <comment id="12441" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Thu, 17 Sep 2020 11:48:56 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=63e2a2771b13d42998e4e706&quot; class=&quot;user-hover&quot; rel=&quot;63e2a2771b13d42998e4e706&quot; data-account-id=&quot;63e2a2771b13d42998e4e706&quot; accountid=&quot;63e2a2771b13d42998e4e706&quot; rel=&quot;noreferrer&quot;&gt;Marc Johnson&lt;/a&gt; and &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; - re: &lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;In the proposed solution, Bob&apos;s changes would be remembered, and Alice would receive an error that the record had changed since she started editing it.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Then my question is: What happens to Alice&apos;s changes, e.g. if she did a lot of updates in quickMARC? &lt;br/&gt;
Can Alice return to her work in quickMARC, and all edits are preserved? &lt;/p&gt;

&lt;p&gt;The preferred behavior will of course be, that Alice&apos;s edits has not been lost.&lt;/p&gt;

&lt;p&gt;Another question, what if Alice is not a person, but e.g. the Data Import module, doing an update at the same time as a person (Bob)? What will happen in Data Import?&lt;/p&gt;</comment>
                                                            <comment id="12442" author="63e2a2771b13d42998e4e706" created="Thu, 17 Sep 2020 11:56:34 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Af80403de-e149-421e-8750-af45c853402f&quot; class=&quot;user-hover&quot; rel=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; data-account-id=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; accountid=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; rel=&quot;noreferrer&quot;&gt;Charlotte Whitt&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Then my question is: What happens to Alice&apos;s changes, e.g. if she did a lot of updates in quickMARC?&lt;br/&gt;
Can Alice return to her work in quickMARC, and all edits are preserved?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;That depends upon what the client, in your example the quickMARC UI, does. It could attempt to reapply Alice&apos;s changes on top of Bob&apos;s. However this assumes that it knows specifically what changes Alice made. I don&apos;t think the current UI tracks them sufficiently to do this easily. My interpretation of &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt;&apos;s comment above: &lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;It does not address specific functionality for automatically incorporating changes to a single record made by multiple users.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;is that kind of recovery is out of scope of this feature.&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Another question, what if Alice is not a person, but e.g. the Data Import module, doing an update at the same time as a person (Bob)? What will happen in Data Import?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Indeed, I was trying to keep the explanation simple by only considering people interacting with the system via the UI.&lt;/p&gt;

&lt;p&gt;In your example, data import is merely a specialised client, it has to decide how it wants to react. It could attempt to reapply it&apos;s changes on top of the new update or it could abort that record and present an error to the person who imported the file.&lt;/p&gt;</comment>
                                                            <comment id="12447" author="712020:56d00f8b-0951-4897-ba61-10c9f41739d5" created="Thu, 17 Sep 2020 12:11:29 +0000"  >&lt;p&gt;Could Alice be given a UI choice between canceling and applying her changes? Then she can talk to Bob on the phone and sort things out. Or is that unrealistic in practice? The technical implementation sounds feasible, I think, but I am not a developer. It would possibly extend the function with simple methods.&lt;/p&gt;

&lt;p&gt;EDIT: I see it&apos;s already in the description, sorry.&lt;/p&gt;</comment>
                                                            <comment id="12451" author="5c48911b54e1e6466b11f38c" created="Thu, 17 Sep 2020 12:33:14 +0000"  >&lt;p&gt;Can Alice be warned when she opens the record that Bob is already viewing/editing it? Or is this scenario intended to understand what happens if they open it at the exact same time?&lt;/p&gt;</comment>
                                                            <comment id="12452" author="5ee89462f7aa140abd82d11d" created="Thu, 17 Sep 2020 13:14:53 +0000"  >&lt;p&gt;A warning does not prevent that they both try to save their changes.&lt;br/&gt;
Back-end processes and batch processes can also be one or both parties of the conflict.&lt;br/&gt;
Showing a warning if some other user has opened the record for edit (some kind of pessimistic locking) is useful but has other difficulties. It is out of scope for optimistic locking, please create a separate issue for this warning feature.&lt;/p&gt;</comment>
                                                            <comment id="12454" author="5af5e627525ba96b58654f12" created="Thu, 17 Sep 2020 13:37:16 +0000"  >&lt;p&gt;Good point &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt; Data import may be trying to update an SRS MARC, Instance, Holdings, or Item at the same time that a user is manually updating it. If there&apos;s a person watching the import, they won&apos;t actually be on the same record as User A, so backend would need to provide some sort of message to the log that the record could not be updated because it was in use by another user or process.&lt;/p&gt;</comment>
                                                            <comment id="12456" author="557058:701bc044-42e4-4044-8724-a85e23b14f8f" created="Thu, 17 Sep 2020 13:48:18 +0000"  >&lt;p&gt;From my data import user perspective, it is not my expectation  that this issue provide warnings about things being in use, I am happy with the initial scope described as a  place to  start. For new records  in data import, this isn&apos;t an issue.  &lt;/p&gt;

&lt;p&gt;For updating  records, I  would expect  data import to  open  the record at a given version(3) and  then write the updated record. If someone had updated the record to  version  4  between  data import&apos;s read and data import&apos;s write then  I would expect my data import change to be rejected with a reason  in the log. I wonder if this model  will hold in  the bulk APIs?&lt;/p&gt;

&lt;p&gt;If at  the same time a user had the record open and I saved version  4 before they  did, then I would expect the user save to fail. I&apos;m  not expecting warnings about things being in use from this. &lt;/p&gt;

&lt;p&gt;We might  want to  give data import  users the ability to override this  behavior,  but only with a lot of care.&lt;/p&gt;

&lt;p&gt;I think data export will need to add version # to exports if we want to be able to use that as part of an ETL chain (for marc records  perhaps the 005 is enough though, if  DI allows that comparison).&lt;/p&gt;</comment>
                                                            <comment id="12457" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Fri, 18 Sep 2020 11:33:38 +0000"  >&lt;p&gt;On the FOLIO API level there&apos;s little distinction between different types of clients: some may be connected to interactive sessions in the FOLIO UI (user editing a record) some may be connected to batch processes running in the background (and potentially using more specialised batch APIs).&lt;/p&gt;

&lt;p&gt;I think a solution where the client is allowed to &quot;override&quot; collision detection is certainly possible but may need to be used with extreme care. It could quickly become a source of the problem we are trying to solve.&lt;/p&gt;</comment>
                                                            <comment id="12459" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Mon, 21 Sep 2020 13:38:42 +0000"  >&lt;p&gt;Update from Capacity Planning Team meeting...&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Optimistic locking has been narrowed down to two possible approaches.  Still dealing with...
	&lt;ul&gt;
		&lt;li&gt;Backward compatibility&lt;/li&gt;
		&lt;li&gt;Handling batch (long-running) processes&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
	&lt;li&gt;Jakub will present options to Product Owners for review and discussion.&lt;/li&gt;
	&lt;li&gt;After that will have community meeting/forum.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                                                            <comment id="12460" author="557058:c2016f82-853d-4e7b-8b4e-b36b5d997f56" created="Wed, 23 Sep 2020 19:52:11 +0000"  >&lt;p&gt;Why is this in the work-around list?  This is fundamental to operations (locking records when in-process) and there is no work-around listed.&lt;/p&gt;</comment>
                                                            <comment id="12462" author="5ee89462f7aa140abd82d11d" created="Wed, 23 Sep 2020 20:07:50 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ac2016f82-853d-4e7b-8b4e-b36b5d997f56&quot; class=&quot;user-hover&quot; rel=&quot;557058:c2016f82-853d-4e7b-8b4e-b36b5d997f56&quot; data-account-id=&quot;557058:c2016f82-853d-4e7b-8b4e-b36b5d997f56&quot; accountid=&quot;557058:c2016f82-853d-4e7b-8b4e-b36b5d997f56&quot; rel=&quot;noreferrer&quot;&gt;Jacquie Samples&lt;/a&gt; Which work-around list do you refer to, can you post a link to it?&lt;/p&gt;</comment>
                                                            <comment id="12464" author="557058:c2016f82-853d-4e7b-8b4e-b36b5d997f56" created="Wed, 23 Sep 2020 21:32:49 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;&lt;br/&gt;
it is on the &quot;Round 4 and Potential workarounds&quot; list linked here &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-492?filter=12622&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/browse/UXPROD-492?filter=12622&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="12465" author="5ee89462f7aa140abd82d11d" created="Wed, 23 Sep 2020 21:45:12 +0000"  >&lt;p&gt;Thanks.&lt;/p&gt;

&lt;p&gt;The &quot;Potential Workaround&quot; field of this issue contains this text:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;CPT: Only comes up during dedicated testing. Two people must perform changes to the same record at the same time.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;From A-M: Except this is not true. It will come up more as libraries do more and more data export/import and batch updates.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;GBV: GBV libraries have update conflicts when doing regular work. Locking was added to our current system (OCLC LBS) to fix this.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;I agree with Jacquie that this doesn&apos;t mention any workaround. CPT says that they are not affected in production, the others say that they &lt;em&gt;are&lt;/em&gt; affected in production.&lt;br/&gt;
I delete the text from the &quot;Potential Workaround&quot; field so that this issue no longer incorrectly shows up on the &quot;Round 4 and Potential workarounds&quot; list mentioned above. A copy of the text is in this comment and in the history.&lt;/p&gt;</comment>
                                                            <comment id="12468" author="5af5e627525ba96b58654f12" created="Thu, 1 Oct 2020 15:18:52 +0000"  >&lt;p&gt;Meeting today: &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt;, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5ee89462f7aa140abd82d11d&quot; class=&quot;user-hover&quot; rel=&quot;5ee89462f7aa140abd82d11d&quot; data-account-id=&quot;5ee89462f7aa140abd82d11d&quot; accountid=&quot;5ee89462f7aa140abd82d11d&quot; rel=&quot;noreferrer&quot;&gt;Julian Ladisch&lt;/a&gt;, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5cf6c546b87c300f36eb7b9a&quot; class=&quot;user-hover&quot; rel=&quot;5cf6c546b87c300f36eb7b9a&quot; data-account-id=&quot;5cf6c546b87c300f36eb7b9a&quot; accountid=&quot;5cf6c546b87c300f36eb7b9a&quot; rel=&quot;noreferrer&quot;&gt;Craig McNally&lt;/a&gt;, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5af5e627525ba96b58654f12&quot; class=&quot;user-hover&quot; rel=&quot;5af5e627525ba96b58654f12&quot; data-account-id=&quot;5af5e627525ba96b58654f12&quot; accountid=&quot;5af5e627525ba96b58654f12&quot; rel=&quot;noreferrer&quot;&gt;Ann-Marie Breaux&lt;/a&gt;, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Af80403de-e149-421e-8750-af45c853402f&quot; class=&quot;user-hover&quot; rel=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; data-account-id=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; accountid=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; rel=&quot;noreferrer&quot;&gt;Charlotte Whitt&lt;/a&gt;, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3A2f7b6349-450b-419a-ba54-c181f51383ad&quot; class=&quot;user-hover&quot; rel=&quot;557058:2f7b6349-450b-419a-ba54-c181f51383ad&quot; data-account-id=&quot;557058:2f7b6349-450b-419a-ba54-c181f51383ad&quot; accountid=&quot;557058:2f7b6349-450b-419a-ba54-c181f51383ad&quot; rel=&quot;noreferrer&quot;&gt;Dennis Bridges&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Key points: (please add any I missed in the comments)&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Intro PPT: &lt;a href=&quot;https://docs.google.com/presentation/d/1X-2Yynn207dT4Shre0DjZLs19NMJB8aNIDUwD-Vszdw/edit?usp=sharing&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://docs.google.com/presentation/d/1X-2Yynn207dT4Shre0DjZLs19NMJB8aNIDUwD-Vszdw/edit?usp=sharing&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;Libraries who ranked this probably focused on the update conflicts portion of the Jira, and less on the solution (optimistic locking)&lt;/li&gt;
	&lt;li&gt;Probably less likely that 2 users are acting on the same record at the same time, more likely that a user and a system process are acting on the same record at the same time&lt;/li&gt;
	&lt;li&gt;Maybe implement as opt-in, so that if this breaks things, it doesn&apos;t break all apps at once. And apps can opt in when they are ready to deal with any additional errors or fallout.&lt;/li&gt;
	&lt;li&gt;Added some use cases to the description. A-M will ask the POs to add other use cases and to link any related, existing Jiras in their apps to this feature. Data import Preview and Rollback (not yet implemented) will increase chances of collisions.&lt;/li&gt;
	&lt;li&gt;A-M will talk with Data Import devs about what happens now, and with SMEs about what happens in their current systems&lt;/li&gt;
	&lt;li&gt;Meet again same time next week to discuss next steps&lt;/li&gt;
&lt;/ul&gt;
</comment>
                                                            <comment id="12470" author="5af5e627525ba96b58654f12" created="Thu, 8 Oct 2020 12:30:02 +0000"  >&lt;p&gt;Comments from the Data Import Subgroup meeting 7 Oct 2020:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Locking records when another user is editing them (&lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-1752&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://folio-org.atlassian.net/browse/UXPROD-1752&lt;/a&gt;)
	&lt;ul&gt;
		&lt;li&gt;The key is data integrity&lt;/li&gt;
		&lt;li&gt;Catalogers are used to having this in their system, so it&#8217;s definitely needed&lt;/li&gt;
		&lt;li&gt;When export and then reimport (like authority processing), and then re-imported, are we checking to see if the instance/cat records has been updated since the export? A-M check with the developers&lt;/li&gt;
		&lt;li&gt;Also two processes acting on the same record (e.g. circ and data import updating a record at the same time)&lt;/li&gt;
		&lt;li&gt;When new things are received, instance, holdings, items all may be worked on a lot in that early life of the resource in the library&lt;/li&gt;
		&lt;li&gt;Thin thread: even if not handled gracefully by the UI at the start, needs to be handled well in the backend at least&lt;/li&gt;
		&lt;li&gt;How do their systems currently handle it?
		&lt;ul&gt;
			&lt;li&gt;005 date is set at export; when importing, check and see if the date in the existing record is newer than the 005 date&lt;/li&gt;
			&lt;li&gt;The versioning approach that is being discussed would be similar&lt;/li&gt;
			&lt;li&gt;When a record is exported, do we need to send out as 005 or as some indication of the version&lt;/li&gt;
			&lt;li&gt;Chicago has an applet that knows about exports; pre-import they submit the list to the applet, and if any records have been updated since they export, they pull those records and reject them&lt;/li&gt;
		&lt;/ul&gt;
		&lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
</comment>
                                                            <comment id="12473" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Thu, 12 Nov 2020 21:54:06 +0000"  >&lt;p&gt;HOLLY IS ADDING INFO FROM JAKUB THAT APPEARED IN SLACK...&lt;br/&gt;
 &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;10659_thumb&quot; href=&quot;/rest/api/3/attachment/content/10659&quot; title=&quot;screenshot-1.png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;10659&quot; file-preview-title=&quot;screenshot-1.png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10659?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10659&quot; filename=&quot;screenshot-1.png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10659&quot; data-attachment-name=&quot;screenshot-1.png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;06bae183-7ae4-4fad-b8e9-89919df1007d&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt; &lt;br/&gt;
 &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;a id=&quot;10660_thumb&quot; href=&quot;/rest/api/3/attachment/content/10660&quot; title=&quot;screenshot-2.png&quot; file-preview-type=&quot;image&quot; file-preview-id=&quot;10660&quot; file-preview-title=&quot;screenshot-2.png&quot;&gt;&lt;jira-attachment-thumbnail url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10660?default=false&quot; jira-url=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10660&quot; filename=&quot;screenshot-2.png&quot;&gt;&lt;img src=&quot;https://folio-org.atlassian.net/rest/api/3/attachment/thumbnail/10660&quot; data-attachment-name=&quot;screenshot-2.png&quot; data-attachment-type=&quot;thumbnail&quot; data-media-services-id=&quot;511c30e4-5661-40f1-a15b-66b401f9fc69&quot; data-media-services-type=&quot;file&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/jira-attachment-thumbnail&gt;&lt;/a&gt;&lt;/span&gt; &lt;/p&gt;</comment>
                                                            <comment id="12474" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Thu, 12 Nov 2020 21:57:14 +0000"  >&lt;p&gt;I&apos;ve requested (on behalf of Cornell) that a meeting be set up for interested library parties.  It would be good for all of us to get on the same page.  It appears that this JIRA issue (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;UXPROD-1752&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-1752&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Prevent update conflicts (via optimistic locking): platform support for detection&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-1752
        &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;
) is now for &apos;Part 1&apos; only and new JIRAs will be created for &apos;Part 2&apos; and &apos;Part 3&apos;.   &apos;Part 1&apos; and opt-in for &apos;Part 2&apos; are both being targeted for R1 2021.&lt;/p&gt;</comment>
                                                            <comment id="12477" author="557058:f80403de-e149-421e-8750-af45c853402f" created="Fri, 13 Nov 2020 08:21:40 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Aa957226f-df85-4fc8-97f4-8b27a26029ed&quot; class=&quot;user-hover&quot; rel=&quot;557058:a957226f-df85-4fc8-97f4-8b27a26029ed&quot; data-account-id=&quot;557058:a957226f-df85-4fc8-97f4-8b27a26029ed&quot; accountid=&quot;557058:a957226f-df85-4fc8-97f4-8b27a26029ed&quot; rel=&quot;noreferrer&quot;&gt;Holly Mistlebauer&lt;/a&gt; - will you also invite to this meeting the most directly involved POs and SIG conveners?&lt;/p&gt;

&lt;p&gt;CC: &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=70121%3Abe36acda-040d-4925-b3df-ebd7e16d4b5b&quot; class=&quot;user-hover&quot; rel=&quot;70121:be36acda-040d-4925-b3df-ebd7e16d4b5b&quot; data-account-id=&quot;70121:be36acda-040d-4925-b3df-ebd7e16d4b5b&quot; accountid=&quot;70121:be36acda-040d-4925-b3df-ebd7e16d4b5b&quot; rel=&quot;noreferrer&quot;&gt;lew235&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ae4c91142-1f56-469c-a80f-9f01d93e942d&quot; class=&quot;user-hover&quot; rel=&quot;557058:e4c91142-1f56-469c-a80f-9f01d93e942d&quot; data-account-id=&quot;557058:e4c91142-1f56-469c-a80f-9f01d93e942d&quot; accountid=&quot;557058:e4c91142-1f56-469c-a80f-9f01d93e942d&quot; rel=&quot;noreferrer&quot;&gt;Kristin Martin&lt;/a&gt; &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5e8c99c89252d10b8a907b98&quot; class=&quot;user-hover&quot; rel=&quot;5e8c99c89252d10b8a907b98&quot; data-account-id=&quot;5e8c99c89252d10b8a907b98&quot; accountid=&quot;5e8c99c89252d10b8a907b98&quot; rel=&quot;noreferrer&quot;&gt;Martina.Schildt&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="12479" author="557058:e4c91142-1f56-469c-a80f-9f01d93e942d" created="Mon, 16 Nov 2020 12:48:45 +0000"  >&lt;p&gt;Thanks - &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Aa957226f-df85-4fc8-97f4-8b27a26029ed&quot; class=&quot;user-hover&quot; rel=&quot;557058:a957226f-df85-4fc8-97f4-8b27a26029ed&quot; data-account-id=&quot;557058:a957226f-df85-4fc8-97f4-8b27a26029ed&quot; accountid=&quot;557058:a957226f-df85-4fc8-97f4-8b27a26029ed&quot; rel=&quot;noreferrer&quot;&gt;Holly Mistlebauer&lt;/a&gt; are there other Jira numbers that now need to be ranked?&lt;/p&gt;</comment>
                                                            <comment id="12481" author="5d6eeadef989e00d8c7e897b" created="Mon, 23 Nov 2020 15:57:45 +0000"  >&lt;p&gt;Has this meeting been set up? This has come up in some support cases as well... &lt;/p&gt;</comment>
                                                            <comment id="12483" author="5af5e627525ba96b58654f12" created="Mon, 23 Nov 2020 19:08:02 +0000"  >&lt;p&gt;Not that I know of, &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5d6eeadef989e00d8c7e897b&quot; class=&quot;user-hover&quot; rel=&quot;5d6eeadef989e00d8c7e897b&quot; data-account-id=&quot;5d6eeadef989e00d8c7e897b&quot; accountid=&quot;5d6eeadef989e00d8c7e897b&quot; rel=&quot;noreferrer&quot;&gt;Anya&lt;/a&gt;&lt;/p&gt;</comment>
                                                            <comment id="12484" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Mon, 30 Nov 2020 01:46:29 +0000"  >&lt;p&gt;&apos;Watchers&apos;:  I will ask about the meeting and the other JIRAs at tomorrow&apos;s Cap Planning meeting.&lt;/p&gt;</comment>
                                                            <comment id="12486" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Mon, 30 Nov 2020 01:47:29 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Af80403de-e149-421e-8750-af45c853402f&quot; class=&quot;user-hover&quot; rel=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; data-account-id=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; accountid=&quot;557058:f80403de-e149-421e-8750-af45c853402f&quot; rel=&quot;noreferrer&quot;&gt;Charlotte Whitt&lt;/a&gt;:  The meeting will be open to anyone.&lt;/p&gt;</comment>
                                                            <comment id="12488" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Tue, 1 Dec 2020 18:45:09 +0000"  >&lt;p&gt;Hi Watchers!  Jakub is scheduled to discuss optimistic locking at the FOLIO Implementation Group meeting on December 15 at 11:00 AM US Eastern Time.   The Zoom URL is &lt;br/&gt;
&lt;a href=&quot;https://zoom.us/j/244921097&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://zoom.us/j/244921097&lt;/a&gt;.  We will record the meeting...&lt;br/&gt;
Thanks,&lt;br/&gt;
Holly&lt;/p&gt;</comment>
                                                            <comment id="12490" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Wed, 9 Dec 2020 14:33:38 +0000"  >&lt;p&gt;Jakub&apos;s attendance at the FOLIO Implementation Group meeting has been rescheduled for January 5 at 11:00 AM US Eastern Time.  The Zoom URL is still &lt;a href=&quot;https://zoom.us/j/244921097&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://zoom.us/j/244921097&lt;/a&gt;.&lt;/p&gt;</comment>
                                                            <comment id="12492" author="5d6eeadef989e00d8c7e897b" created="Mon, 22 Mar 2021 17:12:15 +0000"  >&lt;p&gt;&lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=557058%3Ab8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; class=&quot;user-hover&quot; rel=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; data-account-id=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; accountid=&quot;557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d&quot; rel=&quot;noreferrer&quot;&gt;Jakub Skoczen&lt;/a&gt;&#160;is there an update on this?&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;</comment>
                                                            <comment id="12493" author="5ee89462f7aa140abd82d11d" created="Tue, 23 Mar 2021 11:46:40 +0000"  >&lt;p&gt;raml-module-builder (RMB) since version 32.0.0 ships with optimistic locking support (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;RMB-727&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/RMB-727&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Implement support for optimistic locking&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;
            RMB-727
        &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;
).&lt;/p&gt;

&lt;p&gt;Documentation: &lt;a href=&quot;https://github.com/folio-org/raml-module-builder#optimistic-locking&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;https://github.com/folio-org/raml-module-builder#optimistic-locking&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;RMB based modules need to explicitly enable optimistic locking to use it.&lt;/p&gt;

&lt;p&gt;mod-inventory-storage since version 20.0.0 (
    &lt;span class=&quot;jira-issue-macro resolved&quot; data-jira-key=&quot;MODINVSTOR-656&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/MODINVSTOR-656&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;enable &amp;quot;detection-only&amp;quot; OL for instances, holdings and titles&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;
            MODINVSTOR-656
        &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;
) uses optimistic locking&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;for instance, holding, item only&lt;/li&gt;
	&lt;li&gt;using &lt;tt&gt;logOnConflict&lt;/tt&gt;: a conflict is logged, but not rejected, so that the first write is lost because it gets overwritten by the second write&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Iris ships with a mod-inventory-storage version &amp;gt;= 20.0.0.&lt;/p&gt;

&lt;p&gt;See also UXPROD-2994&#160;&quot;OL: coordinate rollout of &quot;failOnConflict&quot; to select modules and APIs&quot;.&lt;/p&gt;</comment>
                                                            <comment id="12496" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Tue, 20 Apr 2021 21:08:09 +0000"  >&lt;p&gt;Closing this as the RMB support for OL has been shipped in RMB 32. However, this functionality on it&apos;s own does not provide any conflict resolution facilities for individual APIs. The follow-up feature relevant to implementers is 
    &lt;span class=&quot;jira-issue-macro&quot; data-jira-key=&quot;UXPROD-2994&quot; &gt;
                &lt;a href=&quot;https://folio-org.atlassian.net/browse/UXPROD-2994&quot; class=&quot;jira-issue-macro-key issue-link&quot;  title=&quot;Optimistic Locking: coordinate rollout of &amp;quot;failOnConflict&amp;quot; to selected modules and APIs&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-2994
        &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="10000">
                    <name>Blocks</name>
                                            <outwardlinks description="blocks">
                                        <issuelink>
            <issuekey id="11581">UXPROD-2796</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11582">UXPROD-2797</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11584">UXPROD-2798</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="57414">RMB-719</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10001">
                    <name>Cloners</name>
                                            <outwardlinks description="clones">
                                        <issuelink>
            <issuekey id="81246">FOLIO-2028</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </issuelinktype>
                            <issuelinktype id="10008">
                    <name>Defines</name>
                                            <outwardlinks description="defines">
                                        <issuelink>
            <issuekey id="13637">UXPROD-3058</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is defined by ">
                                        <issuelink>
            <issuekey id="56272">MODINVSTOR-713</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="57414">RMB-719</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="57419">RMB-727</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="48542">UIIN-1245</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="56686">RMB-688</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="11830">UXPROD-3048</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="38351">DEBT-1</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="57058">RMB-388</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="25916">UIREQ-344</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="46668">UIIN-730</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="11829">UXPROD-2994</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="79654">FOLIO-2027</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="56101">MODINVSTOR-516</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="56284">MODINVSTOR-656</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="66477">MODINVOICE-233</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                            <attachment id="10659" name="screenshot-1.png" size="77379" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Thu, 12 Nov 2020 21:53:08 +0000"/>
                            <attachment id="10660" name="screenshot-2.png" size="39639" author="557058:a957226f-df85-4fc8-97f4-8b27a26029ed" created="Thu, 12 Nov 2020 21:53:51 +0000"/>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10053" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Back End Estimate</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10124"><![CDATA[XXL < 30 days]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <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="10144"><![CDATA[Core: Platform]]></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)">Platform, DevOps and Release Management</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzzrwf:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10071" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: 5Colleges (Full Jul 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10223"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10067" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Chalmers (Impl Aut 2019)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10203"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10068" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Chicago (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10208"><![CDATA[R1]]></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="10213"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10070" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Duke (Full Sum 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10218"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10073" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: FLO (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10233"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10074" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: GBV (MVP Sum 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10238"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                <customfield id="customfield_10078" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Lehigh (MVP Summer 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10258"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10080" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Leipzig (ERM Aut 2019)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10268"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10079" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: Leipzig (Full TBD)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10263"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10085" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: MO State (MVP June 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10294"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10089" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: TAMU (MVP Jan 2021)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10314"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10091" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: U of AL (MVP Oct 2020)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10324"><![CDATA[R1]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                    <customfield id="customfield_10076" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Rank: hbz (TBD)</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10248"><![CDATA[R1]]></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>Mon, 29 Jul 2019 17:28:12 +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>