<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Fri Feb 09 00:13:43 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>[EDGOAIPMH-9] OAI-PMH: Flow Control/Throttling</title>
                <link>https://folio-org.atlassian.net/browse/EDGOAIPMH-9</link>
                <project id="10044" key="EDGOAIPMH">edge-oai-pmh</project>
                    <description>&lt;p&gt;Official specification: &lt;a href=&quot;http://www.openarchives.org/OAI/2.0/guidelines-repository.htm#FlowControl&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;http://www.openarchives.org/OAI/2.0/guidelines-repository.htm#FlowControl&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The OAI-PMH repository implementation guide (link above) describes a method of throttling harvester requests.  It&apos;s pretty low-tech, but we should implement it (at the edge) in case some harvesters expect or rely on this sort of feedback.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Make the &quot;backoff&quot; time configurable&lt;/li&gt;
	&lt;li&gt;Make the threshold at which we start returning 503s configurable as well.&lt;/li&gt;
	&lt;li&gt;Both of these configurable values should eventually be configurable per tenant (e.g. via mod-configuration), backed up by system properties (as non-tenant-specific defaults), and finally by reasonable hard-coded values if neither are available.&lt;/li&gt;
	&lt;li&gt;There must be a way to disable this feature via configuration.&lt;/li&gt;
&lt;/ul&gt;

</description>
                <environment></environment>
        <key id="37282">EDGOAIPMH-9</key>
            <summary>OAI-PMH: Flow Control/Throttling</summary>
                <type id="10005" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10309?size=medium">Story</type>
                            <parent id="10625">UXPROD-993</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="-1">Unassigned</assignee>
                                                                <reporter accountid="5af5ecdb772036612ff61cf1">Hkaplanian</reporter>
                                    <labels>
                            <label>epam-thunderjet</label>
                    </labels>
                <created>Fri, 28 Sep 2018 17:38:40 +0000</created>
                <updated>Wed, 14 Nov 2018 11:15:14 +0000</updated>
                            <resolved>Thu, 8 Nov 2018 20:19:17 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>3</watches>
                                                                <comments>
                                                            <comment id="84180" author="712020:1b666af5-3f06-4de1-a8ec-5d6d52541b8e" created="Thu, 8 Nov 2018 12:54:03 +0000"  >&lt;p&gt;Hi &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;/p&gt;

&lt;p&gt;I think we need to work out the details as to when edge service should return 503, specifically what would be an indicator that the service is overloaded. A couple of options to begin the discussion are:&lt;br/&gt;
1. When the request to mod-oai-pmh times out&lt;br/&gt;
Currently we return 408 status code in this case, but may return 503 &lt;ins&gt;with an assumption&lt;/ins&gt; (because we don&apos;t really know why) that time-out happened due to high load&lt;br/&gt;
2. Make use of circuit-breaker to calculate number of &lt;ins&gt;unexpected&lt;/ins&gt; errors returned by mod-oai-pmh and return 503 once certain threshold is reached&lt;br/&gt;
This is questionable option, because unexpected errors are not an indicator that service is overloaded&lt;/p&gt;

&lt;p&gt;Let&apos;s discuss it on the grooming meeting.&lt;/p&gt;</comment>
                                                            <comment id="84181" author="5cf6c546b87c300f36eb7b9a" created="Thu, 8 Nov 2018 20:19:04 +0000"  >&lt;p&gt;After discussing with &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5af5ecdb772036612ff61cf1&quot; class=&quot;user-hover&quot; rel=&quot;5af5ecdb772036612ff61cf1&quot; data-account-id=&quot;5af5ecdb772036612ff61cf1&quot; accountid=&quot;5af5ecdb772036612ff61cf1&quot; rel=&quot;noreferrer&quot;&gt;Hkaplanian&lt;/a&gt; we decided to scrap this. &lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;If the community feels that request quotas/throttling is something that&apos;s important enough to build into FOLIO (as opposed to leaving it up to the party hosting the FOLIO instance), it should probably be handled in a common/central place, i.e. OKAPI.&lt;/li&gt;
	&lt;li&gt;The solution described in the implementation guide, while I&apos;m sure was more than reasonable at one time, seems like a kludge in this day and age.&lt;/li&gt;
	&lt;li&gt;API management software (e.g. Redhat&apos;s 3Scale) is more likely to be used in enterprise installations of FOLIO, making this rudimentary throttling obsolete in many cases.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;So, I&apos;m closing this as &quot;won&apos;t do&quot;&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                            <outwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="10253">UXPROD-350</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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)">OAI-PMH Support</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzyysv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10020" key="com.pyxis.greenhopper.jira:gh-sprint">
                        <customfieldname>Sprint</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue id="1630">oai-pmh - sprint 51</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10024" key="com.atlassian.jira.ext.charting:firstresponsedate">
                        <customfieldname>[CHART] Date of First Response</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Thu, 8 Nov 2018 12:54:03 +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>