1

My scenario is

                        +---> ItemProcessor#1 ---> KafkaItemWriter#1
                        |
ItemReader ---> item ---+
                        |
                        +---> ItemProcessor#2 ---> KafkaItemWriter#2

ItemReader is reading data from db and gave java object 'Product'. Now Product object is sent to ItemProcessor1 to get back AggregatedPrice. And same 'Product' object also sent to ItemProcessor2 to get back AggregatedProductDetais. Both returned processed objects needs to be to sent to KafkaWriter to push to two different topics. I am thinking to do in one job execution because otherwise same data is going to be read from database by reader twice. Please provide hint and best approach how i can proceed here. I believe my scenario is not of CompositeItemProcessor as result of one processor is not required to be passed to processor2. Both are independent processors and return totally different object but both processors take same input to process.

  • Does this answer your question? [Spring Batch: One reader, multiple processors and writers](https://stackoverflow.com/questions/18999724/spring-batch-one-reader-multiple-processors-and-writers) – Mahmoud Ben Hassine Sep 22 '20 at 07:21
  • Sort of. Above questions has given me an option to use PropertyExtractingDelegatingItemWriter that gives me back two aggregatedObjects.Now i have to write to kafkaItemWrites and i was referring to your option mentioned in [link](https://github.com/spring-projects/spring-batch/pull/3662#issuecomment-657431365). i am getting exception in bean intialization Error creating bean Caused by: java.lang.IllegalArgumentException: itemKeyMapper requires a Converter type. – user4005166 Sep 22 '20 at 17:00

0 Answers0