Hi all,

I would like to discuss supporting the processingGuarantess `EFFECTIVELY_ONCE` 
in python function runtime.

In this PR's(https://github.com/apache/pulsar/pull/18929) discussion, we 
conclude that to achieve the exactly processing guarantees for 
`EFFECTIVELY_ONCE`, the user needs to ensure that the following pre-requisites 
are met.

1. deduplication is enabled
2. set ProcessingGuarantees to EFFECTIVELY_ONCE
3. the function has only one source topic and one sink topic (both are 
non-partitioned)
4. if partitioned topic is enabled, ensure that the number of partitions (of 
both source and sink topics) is the same

Currently, neither the python function runtime nor the java function runtime 
can support the `EFFECTIVELY_ONCE` processing guarantee when using partitioned 
topics.

So in order to make python functions support `EFFECTIVELY_ONCE` processing 
guarantee, I think we can introduce this feature incrementally, i.e. support 
the `EFFECTIVELY_ONCE` processing guarantee for non-partitioned topics first.

Then follow up with Rui’s 
suggestion(https://github.com/apache/pulsar/pull/18929#issuecomment-1445977320) 
to improve this feature. 


Reply via email to