...
The purpose of RecordCallback
is analogous to KafkaConsumer's OffsetCommitCallback
. The user would use this interface (or class?) to define the end behavior of a method. It could be used to notify the user that they could move on to processing the next record, or it could be used as a feedback loop to send another request for the same record (if it failed).
draw.io Diagram | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
In the second plan, we will have to include a new config such as num.threads.per.task
to help us ascertain the number of threads, maximum, that could be used per task. These threads would be simultaneously processing from the same task (however, ordering would no longer be guaranteed).
...
There might be some problems if a new KafkaStreams instance is brought online in which it gives the offsets out of order when the user is expecting it to be in-order. So in order to maintain the old behavior, we will keep the current structure of Kafka Streams methods intact (although some of its statements might have to be tweaked to acommadate accommodate for the new change).
There are no considerations for deprecation, particularly since we are adding a new capability, not upgrading a preexisting one.
Rejected Alternatives
If there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.