Welcome to Apache Sandesha2 for Java
Apache Sandesha is a reliable messaging system that ensures messages are delivered:
- Exactly Once - with resends and without duplication
- InOrder - so that messages are delivered to the application in the order that they are sent
- Sandesha is an interoperable reliable messaging engine that implements the Web Services ReliableMessaging 1.1 standard from OASIS.
- Sandesha also implements the WS-ReliableMessaging 1.0 specification published by IBM, Microsoft, BEA and TIBCO.
- Sandesha can interoperate with WSRM 1.0 and 1.1 implementations including those from IBM, Microsoft, WSO2, BEA and Sun.
This page is about the Java implementation that works with Apache Axis2/Java.
There are also other projects:
- Sandesha2 for C - based on Apache Axis2/C [Active]
- Sandesha1 for Java - based on Apache Axis1/Java [Stable]
Sandesha2 is a module that plugs into Axis2 to turn it into a reliable messaging system. Sandesha2 uses its own thread pools to ensure that any dropped messages are resent automatically. It uses acknowledgments to ensure that messages are delivered, and every message is numbered, allowing messages to be delivered in-order.
Sandesha can support persistent reliability through a pluggable storage manager interface, as well as an in-memory store. When used with a persistent, recoverable store, Sandesha can reliably deliver messages in the event of remote system failure, network failure and/or local system failure. Sandesha supports transaction behaviour through a pluggable transaction interface. This means that applications can send messages or dispatch service requests under a transaction and the messages will be stored within Sandesha in the same transaction. For more information, please read the Transactions page.