[ 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: dev-unsubscr...@synapse.apache.org For additional commands, e-mail: dev-h...@synapse.apache.org