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)