It would be great to improve the Aggregator to support a completion size
which evaluates ALL exchanges (from all different aggregates).
We ofter have the requirement to split a file which contains items which we
process independently. At the end, we have to aggregate the items based on
the customer.

As an example, we have one input file with 1000 items which will result in
2 output files with 300 and 700 items (or 3 output files with 273, 493, 234
items - or 4 output files with ... I think you got it). At the end, the
aggregator will receive in total 1000 files which should be trigger a flush
on ALL existing aggregates.

What do you think?
Is there already a simple solution for this which I miss?

At present we use a combination of two aggregators to do this. Each will
receive a copy of an item. The second aggregator only counts the total
number of all received exchanges (we are using the same aggragation key
value for this aggregator). If this aggragor flushes the exchange, we send
a "command message" to the first aggregator to flush all the aggregates.

I think there should be a simpler solution out of the box which Camel
should offer. E.g. completionRepositorySize or repositoryCompletionSize

Best,
Christian

Reply via email to