Hello Flink Users,

I have a use case where I am processing metrics from different type of
sources(one source will have multiple devices) and for aggregations as well
as build alerts order of messages is important. To maintain customer data
segregation I plan to have single topic for each customer with each source
stream data to one kafka partition.
To maintain ordering I am planning to push data for a single source type to
single partitions. Then I can create keyedstream so that each of the
device-id I have a single stream which has ordered data for each device-id.

However, flink-kafka consumer I don't see that I can read from a specific
partition hence flink consumer read from multiple kafka partitions. So even
if I try to create a keyedstream on source type(and then write to a
partition for further processing like keyedstream on device-id) I think
ordering will not be maintained per source type.

Only other option I feel I am left with is have single partition for the
topic so that flink can subscribe to the topic and this maintains the
ordering, the challenge is too many topics(as I have this configuration for
multiple customers) which is not advisable for a kafka cluster.

Can anyone shed some light on how to handle this use case.

Thanks,
Hemant

Reply via email to