<!-- 
RSS generated by JIRA (1001.0.0-SNAPSHOT#100246-sha1:7a5c50119eb0633d306e14180817ddef5e80c75d) at Thu Feb 08 23:09:52 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>[FOLIO-969] Architecture needs for a &quot;tap&quot; of transactions</title>
                <link>https://folio-org.atlassian.net/browse/FOLIO-969</link>
                <project id="10290" key="FOLIO">FOLIO</project>
                    <description>&lt;p&gt;It is looking likely that the architecture will need some way to stream transactions to receivers that will transform and do other processing on transaction data.  This issue is a discussion of those needs.&lt;/p&gt;</description>
                <environment></environment>
        <key id="80429">FOLIO-969</key>
            <summary>Architecture needs for a &quot;tap&quot; of transactions</summary>
                <type id="10003" iconUrl="https://folio-org.atlassian.net/rest/api/2/universal_avatar/view/type/issuetype/avatar/10318?size=medium">Task</type>
                                            <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="10001">Duplicate</resolution>
                                                        <assignee accountid="-1">Unassigned</assignee>
                                                                <reporter accountid="5ced27478b03050f27825a93">Peter Murray</reporter>
                                    <labels>
                            <label>devmtg-201801</label>
                    </labels>
                <created>Wed, 6 Dec 2017 19:30:41 +0000</created>
                <updated>Mon, 12 Nov 2018 14:23:52 +0000</updated>
                            <resolved>Mon, 27 Aug 2018 15:49:15 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                    <timespent seconds="3600">1 hour</timespent>
                                <comments>
                                                            <comment id="190969" author="5ced27478b03050f27825a93" created="Wed, 6 Dec 2017 19:43:47 +0000"  >&lt;p&gt;This need has come up in several contexts:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;&lt;b&gt;Reporting SIG&lt;/b&gt;: copies of transactions that are stored in a data refinery (for raw transaction payloads) and/or transformed into tables in a data warehouse (for reporting needs)&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;Discovery Layer&lt;/b&gt;: a stream of transactions that can be fed into the indexer of a discovery layer&lt;/li&gt;
	&lt;li&gt;&lt;b&gt;External KBs&lt;/b&gt;: something &lt;a href=&quot;https://folio-org.atlassian.net/secure/ViewProfile.jspa?accountId=5bffed63a391f63e5a27f6f7&quot; class=&quot;user-hover&quot; rel=&quot;5bffed63a391f63e5a27f6f7&quot; data-account-id=&quot;5bffed63a391f63e5a27f6f7&quot; accountid=&quot;5bffed63a391f63e5a27f6f7&quot; rel=&quot;noreferrer&quot;&gt;Sebastian Hammer&lt;/a&gt; mentioned&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;The crux of the issue is how do we efficiently and effectively get data out of the transaction-oriented Okapi layer and into something that can independently transform/store the transaction data.  Given that there is already more than one need for this (bullet points above), we need a general way of handling this.  Which leads to these questions:&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;Is an interface to &lt;a href=&quot;https://aws.amazon.com/real-time-data-streaming-on-aws/&quot; class=&quot;external-link&quot; rel=&quot;nofollow noreferrer&quot;&gt;Apache Kafka and/or AWS Kinesis&lt;/a&gt; appropriate?  (Do these two project and similar software have a common interface?)&lt;/li&gt;
	&lt;li&gt;Does the interface take the form of a publish/subscribe mechanism or a message bus/queue mechanism or something else?&lt;/li&gt;
	&lt;li&gt;Is the interface native to the Okapi Gateway or is the interface handled in an Okapi module at the end of the processing pipeline (similar to how &lt;em&gt;Auth&lt;/em&gt; is at the start of the processing pipeline)?  Or some other extension to Okapi?&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;Lastly, what is the best way to prototype this requirement?&lt;/p&gt;</comment>
                                                            <comment id="190972" author="557058:b8e64633-1f7c-402d-9caf-9959a5ba5d0d" created="Fri, 8 Dec 2017 11:56:19 +0000"  >&lt;p&gt;&lt;b&gt;Note:&lt;/b&gt; even though we do not support a native messaging protocol, a publish/subscribe mechanism can be simulated by Okapi with so-called multiple interfaces (which would model subscribers) and regular &quot;requires&quot; dependency (to model publishers). What we are missing is a more flexible way to multiplex the requests and collect errors. This could be implemented in Okapi directly or as a module. &lt;/p&gt;

&lt;p&gt;Those use cases require more in-depth analysis &amp;#8211; e.g we can perform a lot of logging of transactions (requests/responses) transparently in Okapi and thus alleviate the module from implicit logging. But this may not be powerful enough &amp;#8211; Okapi only sees data specific to the particular request and does not see/understand the larger context of the request and the effective change to the state of the system object/entity. E.g logging a loan action may require context for what loan policy is attached to it, if the are any outstanding request or fees/fines. &lt;/p&gt;</comment>
                                                            <comment id="190973" author="5ced27478b03050f27825a93" created="Mon, 27 Aug 2018 15:49:15 +0000"  >&lt;p&gt;Work being covered elsewhere.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10003">
                    <name>Relates</name>
                                                                <inwardlinks description="relates to">
                                        <issuelink>
            <issuekey id="80454">FOLIO-925</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <customfield id="customfield_10000" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummarycf">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    <customfield id="customfield_10019" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>0|hzy4l3:</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>Fri, 8 Dec 2017 11:56:19 +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>