Showing newest posts with label synapse. Show older posts
Showing newest posts with label synapse. Show older posts

Wednesday, December 31, 2008

Coming Soon - Articles on WSO2 Carbon clustering

I'm in the process of writing a series of articles on clustering WSO2 Carbon. These articles will be relevant to WSO2 Carbon based products, and most of the content will also be relevant to Apache Axis2. Some portions of these articles will also touch on Apache Synapse.

These articles will mainly be published on The OxygenTank. I'll be posting the links here once these articles are available... so stay tuned!

Wednesday, June 18, 2008

WSO2 Enterprise Service Bus (ESB) - The fastest ESB in the world!

Apache Synapse
WSO2 Enterprise Service Bus

I recently started contributing to Apache Synapse, which is embedded by WSO2 Enterprise Service Bus (ESB). WSO2 Enterprise Service Bus (ESB) has been proven to be the fastest Enterprise Service Bus (ESB) in existence. WSO2 Enterprise Service Bus (ESB) is released under the Apache License v2.0

I submitted my first patch on WSO2 Enterprise Service Bus (ESB) which improves the load balancing capabilities of Synapse. Earlier, the endpoints needed to be statically configured in the synapse.xml configuration file. The new dynamic load balancing mechanism I designed for WSO2 ESB, discovers the members in an application group using a group communication framework. The load balancer itself is part of the application groups, which allows it to detect membership changes. This was the first time I took a look at the Synapse code, and I'm very impressed by the clean design, readability and usability. There are samples that run out of the box & demonstrate all the major features of Synapse. This is a good practice that should be adopted by all projects. In fact, my ESB patch would have been incomplete if a sample had not been included. I would also like to mention that there is a very knowledgeable & helpful community backing Synapse, and the feedback I got on the mailing list has been excellent.

I hope to continue contributing to this great project and the ultra fast, light-weight and versatile Enterprise Service Bus (ESB) based on the Apache Synapse ESB would make a huge difference when it comes to performance.

Wednesday, June 11, 2008

Fault Resilient Dynamic Load Balancing for High Availability

In a traditional load balancing configuration, a single load balancer fronts a group of application nodes. In such a setup, the load balancer can be a single point of failure. This will have a big impact on availability.

One way we can solve this problem is by having 2 or more load balancers in a load balancer group. The state will be replicated amongst the load balancer group members.



As shown in the diagram, the load balancer group will front a group of application members. These members will be running the applications. State replication amongst the application members will take place as usual.

To make the load balancing dynamic, we can make the load balancer members part of the application group as well. In other words, the group membership management service can span across the application group and load balancer group. Therefore, the load balancers will always be notified when application nodes join or leave the group. However, the application nodes are not aware of the load balancers.

The diagram shows a load balancer group with an active-passive load balancer configuration. This can be nicely combined with elastic IPs on Amazon EC2, it order to make the failure completely transparent to the client. In the case of active load balancer failure, the elastic IP (in the diagram, 75.101.131.185), can be dynamically mapped to the passive load balancer and then the passive member takes over.

I'm currently implementing this model with Apache Synapse as the load balancer and WSO2 WSAS as the application nodes.