[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14286273#comment-14286273 ] Rajesh Chitharanjan commented on CAMEL-5539: Hi Andrew, Did your implementation work out? We are planning to use Hystrix within Camel and I was wondering if you are planning to OSS your implementation. Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14185021#comment-14185021 ] Yves De Moor commented on CAMEL-5539: - I would suggest two changes in the current implementation : 1. Ability to call a route when the the circuit is open and not only when it is closed (to allow for instance to go further with a degraded mode, or to return a functional error, ...). The source code currently add a RejectedExecutionException to the exchange. I don't know if this is a camel expected behaviour as it is usually thrown to reject the execution when camel is shutting down. 2. If change 1 is accepted, we could set the number of failure in the exchange so we could for instance react the first time the circuit is open (write to the log, send an alert, or whatever else) What are your opinion ? Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14185065#comment-14185065 ] Bilgin Ibryam commented on CAMEL-5539: -- Sounds like a good improvements to add. Feel free to create issues and do PRs Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14185200#comment-14185200 ] Yves De Moor commented on CAMEL-5539: - Simple, quick and most flexible solution could be : Put the number of failure in an exchange property. Put circuit state in an exchange property (2 status : Open / closed, as halfOpen do the same as closed in term of business) use a Content Based Router to perform something like from(direct:a) .loadBalance()// .circuitBreaker(3, 3000L, MyCustomException.class) .choice() .when(property(Exchange.CircuitBreaker_state).isEqualTo(closed)) .to(direct:normalMode) .when(property(Exchange.CircuitBreaker_state).isEqualTo(opened)) .to(direct:degradedMode) .end() from(direct:degradedMode) .choice() .when(property(Exchange.CircuitBreaker_errorCount).isEqualTo(1)) //First error encountered, send an alert to monitoring .to(direct:monitorging_alert_degradedMode) .end() I also see the current solution is not enough robust. when halfOpen is reached, (System.currentTimeMillis() - lastFailure halfOpenAfter) there is no restriction on the number of calls (threads) that will perform a retry. When retry timeout is reached, we should let only 1 thread go in halfOpen mode, all other should be kept in open state until an halfOpen succeed. (will create new issue for this) Yves. Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13967887#comment-13967887 ] Bilgin Ibryam commented on CAMEL-5539: -- My implementation is completed but I'll leave this issue open in case other implementation as mentioned above are to be added. Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13962295#comment-13962295 ] ASF GitHub Bot commented on CAMEL-5539: --- GitHub user gzurowski opened a pull request: https://github.com/apache/camel/pull/131 CAMEL-5539: Fix compilation problems Fix typo as requested by Bilgin Ibryam bibr...@apache.org. Signed-off-by: Gregor Zurowski gre...@zurowski.org You can merge this pull request into a Git repository by running: $ git pull https://github.com/gzurowski/camel CAMEL-5539-FixBuild Alternatively you can review and apply these changes as the patch at: https://github.com/apache/camel/pull/131.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #131 commit 1949235f1ae94bbd3fc8e7d7f7b6bb1e854ecae1 Author: Gregor Zurowski gre...@zurowski.org Date: 2014-04-07T21:37:28Z CAMEL-5539: Fix compilation problems Fix typo as requested by Bilgin Ibryam bibr...@apache.org. Signed-off-by: Gregor Zurowski gre...@zurowski.org Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13962614#comment-13962614 ] ASF GitHub Bot commented on CAMEL-5539: --- Github user asfgit closed the pull request at: https://github.com/apache/camel/pull/131 Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13961392#comment-13961392 ] Gregor Zurowski commented on CAMEL-5539: @[~bibryam]: There are still problems building the project: == [...] [INFO] --- scala-maven-plugin:3.1.6:compile (default) @ camel-scala --- [INFO] C:\var\git\forks\camel\components\camel-scala\src\main\scala:-1: info: co mpiling [INFO] Compiling 43 source files to C:\var\git\forks\camel\components\camel-scal a\target\classes at 139678566 [ERROR] C:\var\git\forks\camel\components\camel-scala\src\main\scala\org\apache\ camel\scala\dsl\SLoadBalanceDefinition.scala:29: error: not found: value classes b [ERROR] = wrap(target.circuitBreaker(threshold, halfOpenAfter, classesb: _*)) [ERROR] ^ [ERROR] one error found [...] == See the full build output in the attachment: https://issues.apache.org/jira/secure/attachment/12638908/CAMEL-5539-output-82ef800.txt Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output-82ef800.txt, CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13961108#comment-13961108 ] Bilgin Ibryam commented on CAMEL-5539: -- I've implemented a simple version of circuit breaker pattern a load balancer policy. Let me know what you think. Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13961307#comment-13961307 ] Gregor Zurowski commented on CAMEL-5539: @[~bibryam]: It seems that your recent changes break the build: {code|title=mvn clean install} [INFO] Scanning for projects... [INFO] [INFO] [INFO] Building Camel :: Scala 2.14-SNAPSHOT [INFO] [...] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ camel-scala - -- [INFO] Nothing to compile - all classes are up to date [INFO] [INFO] --- scala-maven-plugin:3.1.6:compile (default) @ camel-scala --- [INFO] C:\var\git\forks\camel\components\camel-scala\src\main\scala:-1: info: co mpiling [INFO] Compiling 43 source files to C:\var\git\forks\camel\components\camel-scal a\target\classes at 1396749824710 [ERROR] C:\var\git\forks\camel\components\camel-scala\src\main\scala\org\apache\ camel\scala\dsl\SLoadBalanceDefinition.scala:29: error: type mismatch; [ERROR] found : Seq[Class[_]] [ERROR] required: Class[_] [ERROR] = wrap(target.circuitBreaker(threshold, halfOpenAfter, exceptions)) [ERROR] ^ [ERROR] one error found [INFO] [INFO] BUILD FAILURE [INFO] [INFO] Total time: 28.319s [INFO] Finished at: Sat Apr 05 22:04:01 EDT 2014 [INFO] Final Memory: 20M/303M [INFO] [...] {code} See full build output attached. Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raúl Kripalani Fix For: Future Attachments: CAMEL-5539-output.txt Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13745843#comment-13745843 ] Eric Heath commented on CAMEL-5539: --- Andrew, if you haven't seen https://github.com/Netflix/Hystrix yet, do take a look. The netflix guys have really amazing stuff going on. You'll find more treats at https://github.com/monitoringsucks as well. I would also love to see first class support for circuit breakers in camel. It would be dreamy to configure a CBs directly into your routes. Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raul Kripalani Fix For: Future Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13745849#comment-13745849 ] Eric Heath commented on CAMEL-5539: --- These guys are giving it a go as well: https://jira.springsource.org/browse/INT-2250 Nothing like some friendly competition I guess... Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raul Kripalani Fix For: Future Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13743630#comment-13743630 ] Andrew Harmel-Law commented on CAMEL-5539: -- We're keen to have this functionality. We're running 2.11.1, but as of now, this isn't available. Is there a Work-in-Progress version in a milestone that we can test against for now? We're also looking to wire this into our monitoring infrastructure (StatsD-based). Any update would be much appreciated. If we can avoid writing our own code, that'd be great. Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raul Kripalani Fix For: Future Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13743662#comment-13743662 ] David J. M. Karlsen commented on CAMEL-5539: Some additional resources: https://code.google.com/p/kite-lib/wiki/CircuitBreaker http://dev.hubspot.com/blog/bid/64543/Building-a-Robust-System-Using-the-Circuit-Breaker-Pattern http://www.amazon.com/Release-It-Production-Ready-Pragmatic-Programmers/dp/0978739213 Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raul Kripalani Fix For: Future Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13743679#comment-13743679 ] Andrew Harmel-Law commented on CAMEL-5539: -- Cheers David. We'll take a look (already got the book, but the src sounds promising) Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raul Kripalani Fix For: Future Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13684693#comment-13684693 ] Ioannis Canellos commented on CAMEL-5539: - A must have! Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raul Kripalani Fix For: Future Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (CAMEL-5539) Circuit Breaker EIP
[ https://issues.apache.org/jira/browse/CAMEL-5539?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13459237#comment-13459237 ] Raul Kripalani commented on CAMEL-5539: --- A few initial thoughts on the design of this new EIP: * The EIP should wrap around an endpoint or a processor. It's important to cover Processors too because frequently the access external resources (DBs or callouts to partnerlinks). * By default, it'll be sensitive to all exceptions, but the user can limit the scope by specifying what exceptions to cover, using the exception / DSL. * Possible transitions: Closed = Open, Open = HalfOpen, HalfOpen = Open, HalfOpen = Closed. The user may configure actions for each transition: ** throw an exception, applicable to Closed = Open, Open = HalfOpen ** invoke another endpoint (e.g. to notify that a transition has happened), or to take an alternative route, applicable to all transitions * As David suggests, the algorithm must be pluggable; the strategy interface must be notified twice: before and after an exchange is processed. Two options spring to mind with respect to the interaction between the Strategy and the EIP itself: # The strategy gets a control class (the circuit breaker itself) via a setter. It must use this control class to signal when a transition occurs. 'Before' and 'after' callbacks just to do accountancy. When thresholds are surpassed, the appropriate method in the circuit breaker must be called to signal the transition. # 'Before' and 'after' methods return transition enumeration elements to the Circuit Breaker control class, and the Circuit Breaker decides what to do depending on the transition taken. A possible transition is None. ** E.g.: the 'after' method returning Transition.ClosedToOpen means that the failure threshold was exceeded. From then on, all 'before' invocations would return Transition.None and the EIP will refrain from sending to the endpoint/processor. When state changes to HalfOpen, the EIP will continue dispatching to the endpoint. If the endpoint fails again, the 'after' method should see an Exception in the Exchange and return Transition.Open again, and so the story goes. Please feel free to comment to provide your valuable proposals ;) Circuit Breaker EIP --- Key: CAMEL-5539 URL: https://issues.apache.org/jira/browse/CAMEL-5539 Project: Camel Issue Type: New Feature Components: camel-core, eip Reporter: Claus Ibsen Assignee: Raul Kripalani Fix For: 2.11.0 Look at add the circuit breaker EIP to the Camel DSL. http://davybrion.com/blog/2008/05/the-circuit-breaker/ Would need some thoughts for that though. Either as an explicit in the DSL. Or as a interceptor for sending to an endpoint. As explicit its a kind to the load balancer (in fact it may be extended upon that). Either the LB selects the intended target, or it select the breaker, which rejects executing the message. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira