shashank created CAMEL-26418:
--------------------------------

             Summary: camel-chaos - stage 1b: faults at polls and at route 
entry, corrupt, and expected outcomes with a verdict
                 Key: CAMEL-26418
                 URL: https://issues.apache.org/jira/browse/CAMEL-26418
             Project: Camel
          Issue Type: Improvement
          Components: camel-core
            Reporter: shashank
            Assignee: shashank


CAMEL-26330 added camel-chaos with faults at the sends and steps of a running 
application (apache/camel#28716). This ticket covers the rest of stage 1 of 
{{design/chaos.adoc}}:

* *Faults at polls:* {{endpoint=}} / {{component=}} with {{at=poll}} for 
polling consumers (file, ftp, ...), through the consumer's poll strategy.
* *Faults at route entry:* the {{route=}} target (route entry and lifecycle 
only, not the sends and steps of the route), including {{corrupt}} of the 
message at entry, and {{corrupt}} at sends.
* *{{error status=}}* for the http components (http, https, undertow, 
vertx-http), so a fault looks like the HTTP status a real server would return.
* *Expected outcomes:* per-route counts (completed, failed, kept by the 
consumer, redeliveries) and {{expect=<route>:<count> within=<duration>}} with a 
pending state, and a verdict in the report ({{lost}} when exchanges do not 
complete).

It also takes up the suggestions from the review of #28716:
# a specific error message for parameters that a target does not support;
# a version per report entry, so that a rule changed with {{changeRule}} can be 
told apart from the one it replaced;
# docs: {{endpoint=*}} also matches the send to the dead letter channel, and 
{{step=*}} also matches the steps inside {{onException}} / {{doCatch}};
# a WARN from camel-main when {{camel.chaos.*}} is set but camel-chaos is not 
on the classpath (or in the control stage if camel-main cannot do it without 
depending on camel-chaos);
# ended rules are dropped from the snapshot, and patterns are normalised once, 
to trim the cost per send;
# the stress test uses Awaitility.

The live control (dev console, {{camel cmd chaos-*}}, {{camel get chaos}}, MCP 
tools) and the lifecycle faults with a camel-test-dst world are separate 
follow-ups, as in the design.

_Filed with Claude Code on behalf of allthingssecurity._



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

Reply via email to