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)

Reply via email to