Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Won't Fix
-
2.16.2
-
None
-
Unknown
Description
Currently, the camel-disruptor component is not compatible with the async routing engine.
Therefore, in an InOut scenario, it keeps the calling thread waiting until the CountDownLatch fires.
This degree of synchronicity is contrary to a message-oriented middleware and contrary to the philosophy of the LMAX Disruptor itself.
We should strive to make it fully async via an AsyncCallback.
According to https://stackoverflow.com/questions/6559308/how-does-lmaxs-disruptor-pattern-work, it should be natively possible:
We also allow consumers to wait on the results of other consumers without having to put another queuing stage between them. A consumer can simply watch the sequence number of a consumer that it is dependent on. This avoids the need for join stages in pipeline.