Claus Ibsen created CAMEL-26791:
-----------------------------------

             Summary: camel-chaos - an expectation that can judge a duplicate 
fault: were the duplicates processed twice
                 Key: CAMEL-26791
                 URL: https://issues.apache.org/jira/browse/CAMEL-26791
             Project: Camel
          Issue Type: Improvement
          Components: camel-jbang
            Reporter: Claus Ibsen


Found in the recorded runs of {{camel cmd chaos-explore}} (CAMEL-26760). The AI 
tried the hypothesis "when payment receives duplicates, refunds should handle 
them safely without double-processing" with 
{{endpoint=http://localhost:8080/payment duplicate rate=0.1 
expect=refunds:failed<=0}}. It passed, but 8 duplicate calls went through: the 
payment route completed 69 exchanges for 41 orders and 20 refunds, so 8 
payments or refunds were done twice. No expectation of camel-chaos can see 
that: {{failed}}, {{completed}}, {{handled}} and the times all look fine when a 
duplicate is processed.

A design question rather than a bug. Chaos knows which sends it duplicated (it 
fired 8 times). When the receiver is a route of the same integration (here the 
payment route, or a stubbed endpoint consumed by a route), chaos could count 
how many of the duplicates that route completed, for an expectation such as 
{{expect=payment:duplicates<=0}} (processed twice: none), met when an 
idempotent consumer, or a check of the route, dropped them. When the receiver 
is outside the integration, chaos cannot tell, and the rule could say so.

Open points: how to recognise the duplicate in the receiving route (an exchange 
property or header chaos sets on the copy, which crosses HTTP only as a 
header), and whether the suggestions of {{chaos-suggest}} should pair a 
duplicate fault with this expectation.

_Claude Code on behalf of Claus Ibsen_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to