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

[jira] [Updated] (NIFI-9239) Create processor to run Stateless dataflow, enabling Kafka's exactly once semantics

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

Mark Payne updated NIFI-9239:
-----------------------------
    Fix Version/s: 1.15.0
           Status: Patch Available  (was: Open)

> Create processor to run Stateless dataflow, enabling Kafka's exactly once semantics
> -----------------------------------------------------------------------------------
>
>                 Key: NIFI-9239
>                 URL: https://issues.apache.org/jira/browse/NIFI-9239
>             Project: Apache NiFi
>          Issue Type: New Feature
>          Components: Extensions, NiFi Stateless
>            Reporter: Mark Payne
>            Assignee: Mark Payne
>            Priority: Major
>             Fix For: 1.15.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> There have been many requests for the ability to create a dataflow in NiFi that makes use of Kafka's "Exactly Once Semantics" (EOS). While there are benefits to being able to do so, the requirements that Kafka puts forth don't really work well with NiFi's architecture.
> However, it would make a lot of sense to run a NiFi dataflow using Stateless NiFi, in a manner that could support these EOS.
> To do so, we would need to update the consume & publish processors in order to support the exactly once semantics. The Kafka Consumer would need to be capable of not committing its offsets, and the publisher would need to understand that that was the case and acknowledge the offsets as part of its commit.
> This would require that all messages for the transaction be sent to PublishKafka(Record) as a single group, but that is possible with Batch Output mode of Process Groups.
> While this is possible, it then leaves a concern about the ease of running a Stateless flow with NiFi. While it can be run from command-line, we should also build a Processor that will be capable of fetching a dataflow (from file, registry, etc.) and running that flow as a Processor within NiFi. This offers many additional advantages also, such as the ability to perform a file listing in NiFi, which is persisted, and then processing it with stateless.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)