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

M. Manna updated KAFKA-7358:
----------------------------
    Description: 
In my organisation, we have been using kafka as the basic publish-subscribe 
messaging system provider. Our goal is the send event-based (secure, encrypted) 
SQL messages reliably, and process them accordingly. For us, the message keys 
represent some metadata which we use to either ignore messages (if a loopback 
to the sender), or log some information. We have the following use case for 
messaging:

1) A Database transaction event takes place

2) The event is captured and messaged across 10 data centres all around the 
world.

3) A group of consumers (for each data centre with a unique consumer-group ID) 
are will process messages from their respective partitions. 1 consumer per 
partition.

Under the circumstances, we only need a guarantee that same message won't be 
sent to multiple partitions. In other words, 1 partition will +never+ be sought 
by multiple consumers.

Using DefaultPartitioner, we can achieve this only with NULL keys. But since we 
need keys for metadata, we cannot maintain "Round-robin" selection of 
partitions because a key hash will determine which partition to choose. We need 
to have round-robin style selection regardless of key type (NULL or not-NULL)

  was:
In my organisation, we have been using kafka as the basic publish-subscribe 
messaging system provider. Our goal is the send event-based messages reliably 
and securely, and perform data synchronisation based on the messages. For us, 
the message keys represent some metadata which we use to either ignore messages 
(if a loopback) or log some information. We have the following use case for 
messaging:

1) A Database transaction event takes place

2) The event is captured and messaged across 10 data centres all around the 
world.

3) A group of consumers (for each data centre with a unique consumer-group ID) 
are will process messages from their respective partitions. 1 consumer per 
partition.

Under the circumstances, we only need a guarantee that same message won't be 
sent to multiple partitions. Using DefaultPartitioner, we can achieve this only 
with NULL keys. But since we need keys for metadata, we cannot maintain 
"Round-robin" selection of partitions because a key hash will determine which 
partition to choose. We need both non-null key with round-robin partition 
selection for KafkaProducer.

We believe this solution is achievable and stable, because multiple consumer 
will not be consuming from the same partition as per Kafka's fundamental 
architecture. Hence, the ask for an extended partitioner.


> Extended Partitioner to Support "Always Round Robin" Selection
> --------------------------------------------------------------
>
>                 Key: KAFKA-7358
>                 URL: https://issues.apache.org/jira/browse/KAFKA-7358
>             Project: Kafka
>          Issue Type: Wish
>          Components: clients
>            Reporter: M. Manna
>            Assignee: M. Manna
>            Priority: Minor
>
> In my organisation, we have been using kafka as the basic publish-subscribe 
> messaging system provider. Our goal is the send event-based (secure, 
> encrypted) SQL messages reliably, and process them accordingly. For us, the 
> message keys represent some metadata which we use to either ignore messages 
> (if a loopback to the sender), or log some information. We have the following 
> use case for messaging:
> 1) A Database transaction event takes place
> 2) The event is captured and messaged across 10 data centres all around the 
> world.
> 3) A group of consumers (for each data centre with a unique consumer-group 
> ID) are will process messages from their respective partitions. 1 consumer 
> per partition.
> Under the circumstances, we only need a guarantee that same message won't be 
> sent to multiple partitions. In other words, 1 partition will +never+ be 
> sought by multiple consumers.
> Using DefaultPartitioner, we can achieve this only with NULL keys. But since 
> we need keys for metadata, we cannot maintain "Round-robin" selection of 
> partitions because a key hash will determine which partition to choose. We 
> need to have round-robin style selection regardless of key type (NULL or 
> not-NULL)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to