Petals SE Camel

Forward ACK from Petals Provides to Petals Consumes

Details

  • Type: Bug Bug
  • Status: New New
  • Priority: Minor Minor
  • Resolution: Unresolved
  • Affects Version/s: 0.5.0
  • Fix Version/s: None
  • Component/s: None
  • Security Level: Public
  • Description:
    Hide

    The API used by Apache Camel considers that InOut (for example) exchange are done in two steps: In then Out.
    There is no final ACK (Done or Error).

    It means that when an Exchange arrives from Petals into the Camel SE through the PetalsCamelConsumer, it is straightforward (and currently implemented of course) to transfer the exchange (In) through a route and then to another Petals service through the PetalsCamelProducer, and then to transfer back the answer (Out) up to the PetalsCamelConsumer, but then there is nothing that gives us the possibility to notify the PetalsCamelProducer of the correct (or not) reception of the out so that it can send back a DONE (or ERROR) to the consumed service.

    There is special cases where it can be done, for example, when using the asynchronous API of Camel, PetalsCamelProducer could block when calling the callback (which triggers the sending of the OUT by the PetalsCamelConsumer) and then send the DONE if no exception were thrown.
    But it's not doable in async as we would expect it.
    Nor it is doable when using the synchronous API of Camel (which must be supported too), because then PetalsCamelProducer simply returns from its execution without calling any callback that could give it the clue needed to know if things went wrong or not...

    Show
    The API used by Apache Camel considers that InOut (for example) exchange are done in two steps: In then Out. There is no final ACK (Done or Error). It means that when an Exchange arrives from Petals into the Camel SE through the PetalsCamelConsumer, it is straightforward (and currently implemented of course) to transfer the exchange (In) through a route and then to another Petals service through the PetalsCamelProducer, and then to transfer back the answer (Out) up to the PetalsCamelConsumer, but then there is nothing that gives us the possibility to notify the PetalsCamelProducer of the correct (or not) reception of the out so that it can send back a DONE (or ERROR) to the consumed service. There is special cases where it can be done, for example, when using the asynchronous API of Camel, PetalsCamelProducer could block when calling the callback (which triggers the sending of the OUT by the PetalsCamelConsumer) and then send the DONE if no exception were thrown. But it's not doable in async as we would expect it. Nor it is doable when using the synchronous API of Camel (which must be supported too), because then PetalsCamelProducer simply returns from its execution without calling any callback that could give it the clue needed to know if things went wrong or not...
  • Environment:
    -

People

Dates

  • Created:
    Fri, 11 Sep 2015 - 09:22:02 +0200
    Updated:
    Wed, 30 Sep 2015 - 16:09:43 +0200