Claus Ibsen created CAMEL-26718:
-----------------------------------
Summary: camel-chaos - in= narrows a rule to the sends and steps
of a route, and a route can fail or be slow at its entry
Key: CAMEL-26718
URL: https://issues.apache.org/jira/browse/CAMEL-26718
Project: Camel
Issue Type: Improvement
Components: camel-jbang
Reporter: Claus Ibsen
Assignee: Claus Ibsen
Fix For: 4.24.0
Step 3 of the stage 2 order decided on CAMEL-26607 (S2-2, then S2-1).
h3. in=, the sends and steps of a route (S2-2)
* A second selector that narrows the target of a rule to a route:
{{endpoint=http:* in=orders error status=503}}, {{step=* in=orders delay
duration=500ms}}, {{component=kafka in=order* drop}}.
* {{in=}} is the route of the unit of work, not the routes it calls
({{direct:}}, {{seda:}}); a pattern ({{in=order*}}) takes more routes. With
{{at=poll}} it is the route whose consumer polls.
* It is checked before the rate, so {{rate}} and {{until=<count>}} count only
the matches in those routes.
* Not with {{route=}} (the route is the target already), {{stall}} or
{{lifecycle}}.
* The check warns when no route matches {{in=}}, or when the target matches
nothing inside those routes. The hooks that can fire (CAMEL-26717) look only at
those routes.
* The rule in plain words says it: "fail half of the sends to http:stock* in
route orders with HTTP status 503".
* The chaos model gets the option (pick: routes), and a recipe "The sends of
the route fail".
h3. Errors and delays at the route entry (S2-1)
* {{route=orders error rate=0.05}}, {{route=orders error
exception=java.net.ConnectException}}, {{route=orders delay duration=2s}}.
* The route policy decides at the entry, once per exchange, and the exchange
fails (or waits) at the first step of the route. The route's error handling
applies (onException, redelivery, the dead letter channel), as for a real
failure inside the route.
* When the route does not handle the error, the consumer sees it: a JMS
rollback, the file left in place, an HTTP 500. The guide says so.
* A delay at the entry runs on the consumer thread, so it slows the consumer
down; the guide says so too.
* No {{drop}} at the entry, and no {{at=consumer}}.
* Recipes "The route fails" and "The route is slow".
_Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)