OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

oslc-core message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (OSLCCORE-93) Enforce consecutive order of the trs:order numbers


    [ https://issues.oasis-open.org/browse/OSLCCORE-93?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=70104#comment-70104 ] 

Andrii Berezovskyi commented on OSLCCORE-93:
--------------------------------------------

Nick, trs:seqence is a great idea! Actually, I think if we define trs:seqence (or trs:order_strict) as a subproperty of trs:order, we may avoid introducing any breaking behaviour.

David, I think there may be some corner cases which would make such a simple approach problematic:

# events may arrive out of order, 995 may arrive just before 994 and we need to know whether to keep it in a queue for 5 seconds and wait if the 994 arrives or to apply it
# TRS events may be published before the newly created resource is 200 available and for a short period of time it may be 404 not found.

These things should not happen, but in a highly concurrent system with a lot of eventual consistency instead of strict transactional behaviour these cases must be considered. Having a strictly sequential properties helps a lot.

Ian, a new MAY-level property could be a compromise indeed but I am not sure what would be the long-term implications of this. Would we ever be able to bump it to SHOULD or MUST in OSLC 4, for example? Or would trs:seqence be always a MAY for the reasons of backwards-compatibility?

> Enforce consecutive order of the trs:order numbers
> --------------------------------------------------
>
>                 Key: OSLCCORE-93
>                 URL: https://issues.oasis-open.org/browse/OSLCCORE-93
>             Project: OASIS OSLC Lifecycle Integration Core (OSLC Core) TC
>          Issue Type: Bug
>          Components: TRS
>            Reporter: Andrii Berezovskyi
>            Priority: Major
>              Labels: TRS
>
> If TRS events are to be distributed via messaging systems without strict ordering guarantees (eg partitioned Kafka topics), a Resequencer EIP pattern might need to be applied. The pattern requires the message order ids to be sequential in order to unambiguously define whether there are any out-of-order messages still missing from the internal resequencing buffer.
> I think a single atomic counter is not too much to ask from the TRS server implementers.
> http://www.enterpriseintegrationpatterns.com/patterns/messaging/Resequencer.html



--
This message was sent by Atlassian JIRA
(v7.7.2#77003)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]