On Thu, Mar 31, 2016 at 5:03 PM, Frank Leymann <fr...@wso2.com> wrote:

> Yes, all the stability patterns (that Nygard describes, the circuit
> breaker being just one of them)
> is not associated with microservices, but applies to all distributed
> applications. In fact, Nygard's
> book has been published in 2007, loooong before the microservice
> discussion came up ;-)
>
> Yes Frank, agreed. With the hype about microservices, people have started
talking about these a lot and during the evaluation phase, people look at
features available in frameworks. I don't understand the excitement here.
We are not saying CircuitBreaker etc have to be used. That is as stupid as
saying every object instantiation has to be done via a Factory.


> Applying these patterns to each and any invocation would be a complete
> misuse.
>

Yes, it would very stupid for someone to design a system like that or to
suggest something like that, like I said it would be like asking to
instantiate all objects using the Factory pattern!

Patterns are just part of the toolkit of architects & developers. Knowing
to use the appropriate one at the appropriate place requires proper
judgment. This sample nor this mail thread is not suggesting to use these
everywhere, and I don't understand what gave the impression that we are
suggesting such a thing.


> And it will very likely
> result in performance hits...  The circuit breaker pattern, for example,
> is recommended to be applied
> to "out-of-spec errors", i.e. errors that you don't cover in the spec
> (because the errors are too unlikely ;-))
> of the invoked function or in the spec of the program making the call (aka
> client). Often, these are errors
> that never happen during testing unless you really set up a badly behaving
> test environment. And it has
> impact on the design/implementation of the circuit breaker itself (or
> clients), for example "critical work"
> not accepted by the circuit breaker has be queued (by the client? by the
> circuit breaker?) for later use
> (automatic replay?).
>
> Thus, using one of the stability patterns is a (architecture/design)
> decision with implications on other
> components architecture/design.
>
> Documenting a sample use of the circuit breaker pattern should also
> discuss these ramifications.
>
>
Thanks. We will include these recommendations in our documentation.


>
> Best regards,
> Frank
>
> 2016-03-31 9:12 GMT+02:00 Sanjiva Weerawarana <sanj...@wso2.com>:
>
>> Agreed. However I had understood that the circuit breaker pattern was
>> advocated primarily for service clients in MSA (and of course it has
>> nothing do with being micro).
>>
>> The general story of better failure handling applies to all code and is
>> of course not MSA specific.
>>
>> Anyway .. Sample is fine.
>> On Mar 31, 2016 9:19 AM, "Afkham Azeez" <az...@wso2.com> wrote:
>>
>>>
>>>
>>> On Thu, Mar 31, 2016 at 9:04 AM, Sanjiva Weerawarana <sanj...@wso2.com>
>>> wrote:
>>>
>>>> That's why I said "fancy try catch" :-).
>>>>
>>>> However, are you SERIOUSLY saying that we for example should be
>>>> wrapping all our DB access code in this stuff? If not who exactly should be
>>>> doing this? What are the perf implications?
>>>>
>>>
>>> No I am not saying that. However, there will be use cases where people
>>> want to use this pattern and this is a simplified sample that demonstrates
>>> how to use this pattern. In Nygards book about how an SQL statement
>>> execution failure resulted in an entire checking in system in an airline
>>> failing because the failure propagated is a good example of uncontrolled
>>> failure propagation (Release It, Chapter 2: Case study: The exception that
>>> grounded an airline, for those of you who have the book). So my example was
>>> somewhat inspired by that case study and is highly simplified.
>>>
>>> If a sample is too complicated, people get lost in the implementation
>>> details rather than seeing how the core concept or pattern is implemented.
>>> I certainly can implement another sample which demonstrates client->service
>>> or service->service calls, it certainly would add more code but the core
>>> concept demonstrated would be the same.
>>>
>>>
>>>
>>>>
>>>> Of course wrapping remote service calls in this stuff makes sense -
>>>> great way to adjust to transient issues. In that case the overhead is
>>>> heavily masked by the latency - I'm not so convinced that is the case for
>>>> transactional JDBC calls but maybe it is. In that case WE must use it
>>>> internally.
>>>>
>>>> Sanjiva.
>>>>
>>>> On Thu, Mar 31, 2016 at 8:53 AM, Afkham Azeez <az...@wso2.com> wrote:
>>>>
>>>>> 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 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*
>>>
>>> _______________________________________________
>>> 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
>>
>>
>
> _______________________________________________
> 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

Reply via email to