Monday, June 23, 2008

Apache Synapse Enterprise Service Bus (ESB) Performance Testing - Round 3

We have just concluded the third round of Enterprise Service Bus (ESB) performance testing here at WSO2! The WSO2 Enterprise Service Bus (ESB) v1.7 embeds the Apache Synapse Enterprise Service Bus (ESB) v.1.2 at its core, and thus the performance numbers between these are identical.

Its great to hear that even BEA / Oracle was very much interested about the performance numbers we demonstrated last year, and wanted to beat our numbers with their latest release of AquaLogic Service Bus 3.0 on Weblogic 10. I think this demonstrates a level of trust by the Enterprise Service Bus (ESB) vendors and users alike, on the tests we conducted. The fact that we made the configurations/tuning and the tools used openly available, and asked for help from the vendors to optimally configure their ESB's for the scenarios, and reporting back any problems we encountered adds to the level of openness we demonstrated. Additionally this round of testing shows that even the WSO2 Enterprise Service Bus (ESB) / Apache Synapse Enterprise Service Bus (ESB) has room for improvement against a proprietary ESB that we benchmarked against, but also shows a very clear lead against the other open source alternatives.

It should be noted that the advantages of the WSO2 Enterprise Service Bus (ESB) / Apache Synapse Enterprise Service Bus (ESB) does not lie only on its low resource usage foot print, excellent performance or scalability or its free and open source Apache License v2.0 alone; but in its ease of use, the ability to define a configuration graphically, and the fact that it ships over 55 working samples and documentation that demonstrates various features to help users become effective from day 1.

Let me just highlight some of the observations and conclusions here

- Mule CE 2.0.1 couldn't handle the cases where we used a concurrency level of 80; while other ESB's scaled to support to over 2500 concurrent connections. This was after tuning the maximum active thread count to 100 from its default value, which limited Mule to a very few concurrent connections.

- A proprietary version of an open source ESB had the same problem described above.

- Mule CE 2.0.1 also dropped 1% of ALL requests it received

- Apache ServiceMix 3.2.1 failed to forward the incoming SOAPAction for proxy services, and this was now a known issue (I would consider this a blocker, and would suggest that ServiceMix folks follow up a 3.2.2 release just to fix this critical issue)

- A proprietary ESB we benchmarked and beat last year, did some major improvements to their performance, and did 1.6~1.9 times better than us for some of the scenarios

- The WSO2 Enterprise Service Bus (ESB) / Apache Synapse Enterprise Service Bus (ESB) shows a clear lead and dominates the open source ESB space

Read about it all here: and run the benchmarks yourself!

Labels: , , , , , , ,

Tuesday, June 10, 2008

Synapse 1.2 released!

The Apache Synapse team is pleased to announce the release of
version 1.2 of the Open Source Enterprise Service Bus (ESB).

Apache Synapse is an lightweight and easy-to-use Open Source
Enterprise Service Bus (ESB) available under the Apache Software License
v2.0. Apache Synapse allows administrators to simply and easily configure
message routing, intermediation, transformation and logging task scheduling,
etc.. The runtime has been designed to be completely asynchronous,
non-blocking and streaming.

The Apache Synapse project and the 1.2 release can be found here:

Apache Synapse offers connectivity and integration with a range of
legacy systems, XML-based services and SOAP Web Services. It supports
non-blocking HTTP and HTTPS using the Apache HTTPCore (
components, as well as supporting JMS (v1.0 and higher) and a range of
file systems and FTP sources including SFTP, FTP, File, ZIP/JAR/TAR/GZ
via the Apache VFS project (
At the same time Synapse 1.2 release adds the support for the Financial
Information eXchange (FIX)
an industry driven messaging standard through
QuickFixJ, Hessian binary web service protocol, as well as other functional,
stability and performance improvements. Synapse supports transformation and
routing between protocols without any coding via configurable virtual services.

Synapse provides first class support for standards such as WS-Addressing,
Web Services Security (WSS), Web Services Reliable Messaging (WSRM),
Throttling and caching, configurable via WS-Policy upto message level,
as well as efficient binary attachments (MTOM/XOP).

The 1.2 release contains a set of enhancements based on feedback from
the user community, including:
  • Support for Hessian binary web service protocol
  • FIX (Financial Information eXchange) protocol for messaging
  • WS-Reliable Messaging support with WSO2 Mercury
  • Support for re-usable database connection pools for DB report/lookup mediators
  • Support for GZip encoding and HTTP 100 continue
  • Natural support for dual channel messaging with WS-Addressing
  • Cluster aware sticky load balancing support
  • Non-blocking streaming of large messages at high concurreny with constant memory usage
  • Support for an ELSE clause for the Filter mediator
  • Ability to specify XPath expressions relative to the envelope or body
  • Support for separate policies for incoming/outgoing messages
  • Support for a mandatory sequence before mediation

The combination of XML streaming and asynchronous support for HTTP and HTTPS
using Java NIO ensures that Synapse has very high scalability under load.
Performance tests show that Synapse can scale to support thousands of
concurrent connections with constant memory on standard server hardware.

Apache Synapse ships with over 50 samples
designed to demonstrate common integration patterns "out-of-the-box",
along with supporting sample services, and service clients that
demonstrate these scenarios. Apache Synapse is configured using a
straightforward XML configuration syntax

Apache Synapse is openly developed by a community that welcomes all
forms of input, ranging from suggestions and bug reports to patches and
code contributions. Your comments and feedback on the project and release
are welcomed.

The Apache Synapse code and binaries are available from the website

The Apache Synapse Team