You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Mathew Kapkiai (Jira)" <ji...@apache.org> on 2022/05/17 06:28:00 UTC

[jira] [Updated] (NIFI-9475) Provide Framework-Level Retries for NiFi Relationships

     [ https://issues.apache.org/jira/browse/NIFI-9475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mathew Kapkiai updated NIFI-9475:
---------------------------------
    Attachment: image-2022-05-17-09-27-33-222.png

> Provide Framework-Level Retries for NiFi Relationships
> ------------------------------------------------------
>
>                 Key: NIFI-9475
>                 URL: https://issues.apache.org/jira/browse/NIFI-9475
>             Project: Apache NiFi
>          Issue Type: New Feature
>            Reporter: Timea Barna
>            Assignee: Timea Barna
>            Priority: Major
>             Fix For: 1.16.0
>
>         Attachments: image-2022-05-17-09-27-33-222.png
>
>          Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> For a processor that routes to failure, in NiFi I have 3 options:
> 1) Loop 'failure' back to the processor and retry forever
> 2) Auto-terminate or route the data elsewhere without any retries
> 3) Build a complex retry loop that creates or updates an attribute, routes on that attribute to determine whether or not we've exceeded the maximum number of retries, and if not penalizes the FlowFile (typically with a Script processor) and then routes back to try the FlowFile again.
> This provides a poor user experience and poor performance and results in very complex flows that are difficult to understand and maintain.
> As a user, when I configure a Processor, I should be able to indicate that for Relationship ABC, I want to retry the FlowFile 5 times. Then, if the Processor transfers a FlowFile to that relationship, it should instead transfer the FlowFile back to its original queue and increment the transfer count for that relationship from 0 to 1 and penalize the FlowFile. If the Processor processes it again and transfers it to the same Relationship again, it'll again put it back to the original queue and increment the count to 2. Only when the data is routed to that Relationship 5 times (because that's the configured retry count in this example) should the FlowFile actually be transferred to that corresponding connection(s) or auto-terminated, as the flow is configured.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)