Azeez, asking questions and asking to understand what the purpose of some
code is not a criticism.

Of course there should be a sample! I only asked about it because to me a
client side sample made more sense - and then it went into a discussion of
when this should be used etc..

I would not only put the blog back but also use the opportunity to explain
to "lazy developers" when and where one should use a circuitbreaker. That's
1000x more valuable than just the code on how to do it.

Sanjiva.

On Thu, Mar 31, 2016 at 8:00 PM, Afkham Azeez <az...@wso2.com> wrote:

> The blog post has been removed. Sorry for all the confusion. This was only
> done as part of the agreement we had during last week's meeting to
> demonstrate certain features such as Spring support, JPA support, support
> for patterns etc. in order to help developers understand how to implement
> certain stuff with MSF4J. Our target community of MSF4J is primarily
> developers, and developers like to refer to sample code segments in order
> to proceed with implementing their solutions. We lazy developers love to
> Google search for code segments, e.g. JDBC connection example, and then
> copy, paste and modify those segments. What I have been trying to do with
> the series of blogposts is to make available such code segments developers
> could readily use. Since this post and mail thread has generated a lot of
> negative feeling and confusion, I think it is better to get rid of this
> controversial blog post.
>
> Thanks
> Azeez
>
> On Thu, Mar 31, 2016 at 6:54 PM, Afkham Azeez <az...@wso2.com> wrote:
>
>>
>>
>> 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 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
>
>


-- 
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

Reply via email to