[
https://issues.apache.org/jira/browse/SYNAPSE-1130?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17793464#comment-17793464
]
Pamod Sylvester commented on SYNAPSE-1130:
------------------------------------------
Pull Request [https://github.com/apache/synapse/pull/89] contains the feature
improvement
> Introduce Resequence Message Store
> ----------------------------------
>
> Key: SYNAPSE-1130
> URL: https://issues.apache.org/jira/browse/SYNAPSE-1130
> Project: Synapse
> Issue Type: Sub-task
> Components: Core
> Affects Versions: 3.0.1
> Reporter: Pamod Sylvester
> Assignee: Isuru Udana
> Priority: Major
> Labels: features
> Fix For: FUTURE
>
>
> [Resequencer|[https://www.enterpriseintegrationpatterns.com/patterns/messaging/Resequencer.html]
> ] will consolidate out of order messages and ensure that the messages are
> rearranged to the correct order before sending it out.
> h1. Description
> Resequencer can have two forms,
> h3. Batch Resequencer
> # Order identifying criteria (based on message body expression etc,
> header)/this should be extensible
> # Resequencing delimiters (batch size, timeout)
> h3. Stream Resequencer
> # Order identifying criteria - header “seqnum”
> # Resequencing delimiters - gap detection/timeout
>
> Gap detection - This will ensure that for a given sequence number say 3, the
> predecessor is 2 and the successor is 4. If this doesn’t match it will wait
> until the matching predecessor arrives before sending the message out.
> h1. Resequence Message Processor vs Resequence Message Store
>
> At present the resquence processor will introduce the following discrepancies,
> # Messages will be peeked and polled from volatile memory, hence reliability
> guarantees cannot be provided
> # The algorithm assumes once a message is picked/peeked from store the next
> message could be peeked without having to remove the current message. This
> operation would not resonate with queuing architectures such as JMS (which
> could be introduced in future; for message stores).
> # Implementation is based on stream sequencing. Batch sequencing is not
> supported
>
> Hence it's important to note; for EIPs such as resequencer a more non
> volatile store is required. Further options such as batch resequencing is
> required.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]