Equating these fault tolerance patterns to Java 8 Optional or try-catch, is a highly oversimplified view. What Hystrix and these patterns provides is a framework for building fault tolerant systems. Something that is useful in the toolkit of an architect & developer.
On Thu, Mar 31, 2016 at 8:36 AM, Sanjiva Weerawarana <sanj...@wso2.com> wrote: > This is almost kinda like that stupid new Java8 thing of "we removed null > by wrapping it in a fancy object" ;-). > > On Thu, Mar 31, 2016 at 8:32 AM, Sanjiva Weerawarana <sanj...@wso2.com> > wrote: > >> So this is not what I expected the real use case to be ... this is >> basically a fancy try catch. >> >> Don't we want to show a client side example? >> >> On Thu, Mar 31, 2016 at 6:28 AM, Afkham Azeez <az...@wso2.com> wrote: >> >>> Timeout is related to the actual operation taking more time than >>> anticipated. In such a case, without waiting indefinitely, the operation >>> times out and the fallback of the Hystrix command will be invoked. The >>> circuit will be open for a fixed period of time configured by >>> https://github.com/Netflix/Hystrix/wiki/Configuration#circuitBreaker.sleepWindowInMilliseconds >>> >>> On Thu, Mar 31, 2016 at 2:53 AM, Harshan Liyanage <hars...@wso2.com> >>> wrote: >>> >>>> Hi Azeez, >>>> >>>> Does this timeout in open state occurs in exponentially (first timeout >>>> in 10 secs, next in 20 secs etc) or linearly when transitioning back to >>>> half-open state? For example if the state is in "Open" and now the timeout >>>> (lets say 10secs timeout) occurs. Then the state is moved to "half-open" >>>> state. But the next request is also a failure and breaker state is moved >>>> back to "open". In this occasion the what will be the timeout value? Is it >>>> 10 secs or 20 secs? >>>> >>>> Having an exponential timeout might be beneficiary here as it might >>>> save lot of resources if the service is continuously failing. But I think >>>> it would be better if we can provide both options in a configurable manner. >>>> So it is up to the developer to decide which method to use. >>>> >>>> Thanks, >>>> >>>> Harshan Liyanage >>>> Software Engineer >>>> Mobile: *+94724423048* >>>> Email: hars...@wso2.com >>>> Blog : http://harshanliyanage.blogspot.com/ >>>> *WSO2, Inc. :** wso2.com <http://wso2.com/>* >>>> lean.enterprise.middleware. >>>> >>>> On Wed, Mar 30, 2016 at 5:05 AM, Afkham Azeez <az...@wso2.com> wrote: >>>> >>>>> I have written a sample which demonstrates circuit breaker in action; >>>>> http://blog.afkham.org/2016/03/microservices-circuit-breaker.html >>>>> >>>>> On Sat, Mar 12, 2016 at 6:09 PM, Afkham Azeez <az...@wso2.com> wrote: >>>>> >>>>>> This is a feature supported by some microservices frameworks. On the >>>>>> server side, in this case MSF4J runtime, failure counts are kept track of >>>>>> and then if the failures exceed certain thresholds, the circuit trips and >>>>>> rather than dispatch to the service, it returns service unavailable. >>>>>> >>>>>> Can you explain why this is not needed in a container environment? >>>>>> >>>>>> On Sat, Mar 12, 2016 at 12:56 PM, Sanjiva Weerawarana < >>>>>> sanj...@wso2.com> wrote: >>>>>> >>>>>>> I don't understand what server side circuit breaker means. How does >>>>>>> the server adjust itself? Where's that bit of logic running? >>>>>>> >>>>>>> IMO this is not needed in a container world. >>>>>>> >>>>>>> On Fri, Mar 11, 2016 at 4:38 PM, Afkham Azeez <az...@wso2.com> >>>>>>> wrote: >>>>>>> >>>>>>>> Yes, that is client side circuit breaker. What Aruna is >>>>>>>> implementing is server side circuit breaker. Yes, we need both. >>>>>>>> >>>>>>>> On Fri, Mar 11, 2016 at 4:04 PM, Lakmal Warusawithana < >>>>>>>> lak...@wso2.com> wrote: >>>>>>>> >>>>>>>>> Did you looked at [1] >>>>>>>>> >>>>>>>>> Netflix Hystrix <https://github.com/Netflix/Hystrix> is an >>>>>>>>> incredibly useful library for writing code that invokes remote >>>>>>>>> services. >>>>>>>>> Hystrix times out calls that exceed the specified threshold. It >>>>>>>>> implements >>>>>>>>> a *circuit breaker* pattern, which stops the client from waiting >>>>>>>>> needlessly for an unresponsive service. If the error rate for a >>>>>>>>> service >>>>>>>>> exceeds a specified threshold, Hystrix trips the circuit breaker and >>>>>>>>> all >>>>>>>>> requests will fail immediately for a specified period of time. >>>>>>>>> Hystrix lets >>>>>>>>> you define a fallback action when a request fails, such as reading >>>>>>>>> from a >>>>>>>>> cache or returning a default value. If you are using the JVM you >>>>>>>>> should >>>>>>>>> definitely consider using Hystrix. >>>>>>>>> >>>>>>>>> [1] https://github.com/Netflix/Hystrix >>>>>>>>> >>>>>>>>> On Fri, Mar 11, 2016 at 2:42 PM, Aruna Karunarathna < >>>>>>>>> ar...@wso2.com> wrote: >>>>>>>>> >>>>>>>>>> Hi Devs, >>>>>>>>>> >>>>>>>>>> *Scenario* >>>>>>>>>> >>>>>>>>>> The deployed services in a MSF4J may fail to serve the requests >>>>>>>>>> due to various factors. e.g, >>>>>>>>>> 1. Less resources in the server. >>>>>>>>>> 2. High Load in the server >>>>>>>>>> 3, Some services take more time to respond etc. >>>>>>>>>> >>>>>>>>>> In this kind of a situation, if the server is getting requests >>>>>>>>>> though there is no resources to serve those requests, and eventually >>>>>>>>>> the >>>>>>>>>> server will get unusable. >>>>>>>>>> >>>>>>>>>> *Solution* >>>>>>>>>> >>>>>>>>>> The Circuit Breaker design pattern can save the server from above >>>>>>>>>> scenarios, The typical design can be illustrated as in the following >>>>>>>>>> diagram. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> So as in the above diagram, when number of failures of a >>>>>>>>>> particular resource exceeds the Max Failure Count, then the state of >>>>>>>>>> that >>>>>>>>>> resource is moved to the open state with a timeout value (Trip >>>>>>>>>> Breaker). At >>>>>>>>>> this point the requests coming to the server is routed back without >>>>>>>>>> passing >>>>>>>>>> the internal to process further. >>>>>>>>>> >>>>>>>>>> After the timeout has reached, the state is moved to Half-Open >>>>>>>>>> state, and if the consecutive request pass to the server to process >>>>>>>>>> (Attempt Reset), if success then close the circuit (Reset Breaker), >>>>>>>>>> If fail >>>>>>>>>> then again move the state to the Open with a timeout value (Trip >>>>>>>>>> Breaker). >>>>>>>>>> >>>>>>>>>> Any thoughts, suggestions regarding the above approach? >>>>>>>>>> >>>>>>>>>> References >>>>>>>>>> [1]. >>>>>>>>>> http://www.javaworld.com/article/2824163/application-performance/stability-patterns-applied-in-a-restful-architecture.html?page=2 >>>>>>>>>> [2]. >>>>>>>>>> http://ssagara.blogspot.com/2015/05/timeout-and-circuit-breaker-pattern-in.html >>>>>>>>>> [3]. https://pragprog.com/book/mnee/release-it >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Aruna >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> *Aruna Sujith Karunarathna * >>>>>>>>>> WSO2, Inc | lean. enterprise. middleware. >>>>>>>>>> #20, Palm Grove, Colombo 03, Sri Lanka >>>>>>>>>> Mobile: +94 71 9040362 | Work: +94 112145345 >>>>>>>>>> Email: ar...@wso2.com | Web: www.wso2.com >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> _______________________________________________ >>>>>>>>>> Architecture mailing list >>>>>>>>>> Architecture@wso2.org >>>>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Lakmal Warusawithana >>>>>>>>> Director - Cloud Architecture; WSO2 Inc. >>>>>>>>> Mobile : +94714289692 >>>>>>>>> Blog : http://lakmalsview.blogspot.com/ >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> *Afkham Azeez* >>>>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>>>>> * <http://www.apache.org/>* >>>>>>>> *email: **az...@wso2.com* <az...@wso2.com> >>>>>>>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >>>>>>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>>>>>> *twitter: **http://twitter.com/afkham_azeez* >>>>>>>> <http://twitter.com/afkham_azeez> >>>>>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>>>>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>>>>>> >>>>>>>> *Lean . Enterprise . Middleware* >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Architecture mailing list >>>>>>>> Architecture@wso2.org >>>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sanjiva Weerawarana, Ph.D. >>>>>>> Founder, CEO & Chief Architect; WSO2, Inc.; http://wso2.com/ >>>>>>> email: sanj...@wso2.com; office: (+1 650 745 4499 | +94 11 214 >>>>>>> 5345) x5700; cell: +94 77 787 6880 | +1 408 466 5099; voip: +1 650 >>>>>>> 265 8311 >>>>>>> blog: http://sanjiva.weerawarana.org/; twitter: @sanjiva >>>>>>> Lean . Enterprise . Middleware >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Architecture mailing list >>>>>>> Architecture@wso2.org >>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> *Afkham Azeez* >>>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>>> * <http://www.apache.org/>* >>>>>> *email: **az...@wso2.com* <az...@wso2.com> >>>>>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >>>>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>>>> *twitter: **http://twitter.com/afkham_azeez* >>>>>> <http://twitter.com/afkham_azeez> >>>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>>>> >>>>>> *Lean . Enterprise . Middleware* >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> *Afkham Azeez* >>>>> Director of Architecture; WSO2, Inc.; http://wso2.com >>>>> Member; Apache Software Foundation; http://www.apache.org/ >>>>> * <http://www.apache.org/>* >>>>> *email: **az...@wso2.com* <az...@wso2.com> >>>>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >>>>> *http://blog.afkham.org* <http://blog.afkham.org> >>>>> *twitter: **http://twitter.com/afkham_azeez* >>>>> <http://twitter.com/afkham_azeez> >>>>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >>>>> <http://lk.linkedin.com/in/afkhamazeez>* >>>>> >>>>> *Lean . Enterprise . Middleware* >>>>> >>>>> _______________________________________________ >>>>> Architecture mailing list >>>>> Architecture@wso2.org >>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>>> >>>>> >>>> >>>> _______________________________________________ >>>> Architecture mailing list >>>> Architecture@wso2.org >>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>>> >>>> >>> >>> >>> -- >>> *Afkham Azeez* >>> Director of Architecture; WSO2, Inc.; http://wso2.com >>> Member; Apache Software Foundation; http://www.apache.org/ >>> * <http://www.apache.org/>* >>> *email: **az...@wso2.com* <az...@wso2.com> >>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: * >>> *http://blog.afkham.org* <http://blog.afkham.org> >>> *twitter: **http://twitter.com/afkham_azeez* >>> <http://twitter.com/afkham_azeez> >>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez >>> <http://lk.linkedin.com/in/afkhamazeez>* >>> >>> *Lean . Enterprise . Middleware* >>> >>> _______________________________________________ >>> Architecture mailing list >>> Architecture@wso2.org >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >>> >> >> >> -- >> Sanjiva Weerawarana, Ph.D. >> Founder, CEO & Chief Architect; WSO2, Inc.; http://wso2.com/ >> email: sanj...@wso2.com; office: (+1 650 745 4499 | +94 11 214 5345) >> x5700; cell: +94 77 787 6880 | +1 408 466 5099; voip: +1 650 265 8311 >> blog: http://sanjiva.weerawarana.org/; twitter: @sanjiva >> Lean . Enterprise . Middleware >> > > > > -- > Sanjiva Weerawarana, Ph.D. > Founder, CEO & Chief Architect; WSO2, Inc.; http://wso2.com/ > email: sanj...@wso2.com; office: (+1 650 745 4499 | +94 11 214 5345) > x5700; cell: +94 77 787 6880 | +1 408 466 5099; voip: +1 650 265 8311 > blog: http://sanjiva.weerawarana.org/; twitter: @sanjiva > Lean . Enterprise . Middleware > > _______________________________________________ > Architecture mailing list > Architecture@wso2.org > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- *Afkham Azeez* Director of Architecture; WSO2, Inc.; http://wso2.com Member; Apache Software Foundation; http://www.apache.org/ * <http://www.apache.org/>* *email: **az...@wso2.com* <az...@wso2.com> * cell: +94 77 3320919blog: **http://blog.afkham.org* <http://blog.afkham.org> *twitter: **http://twitter.com/afkham_azeez* <http://twitter.com/afkham_azeez> *linked-in: **http://lk.linkedin.com/in/afkhamazeez <http://lk.linkedin.com/in/afkhamazeez>* *Lean . Enterprise . Middleware*
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture