Skip to main content

Apache Sandesha2

Apache Sandesha2 is an open-source implementation of the WS-ReliableMessaging (WS-RM) protocol specification for Apache Axis2 (service-oriented messaging middleware), providing reliable Simple Object Access Protocol (SOAP) message delivery over unreliable transport channels.

  • WS-ReliableMessaging implementation for Apache Axis2 (reliable messaging middleware).
  • Support for reliable SOAP message delivery semantics, including delivery assurance policies (message reliability).
  • Integration as an Axis2 module for server-side and client-side Web services (SOA / Web services runtime).
  • Support for message retransmission, sequencing, and acknowledgment handling as defined by WS-RM (messaging protocol implementation).
  • Extensible configuration through Axis2 deployment descriptors and policies (service configuration and governance).

More About Apache Sandesha2

Apache Sandesha2 is the WS-ReliableMessaging (WS-RM) implementation for the Apache Axis2 (service-oriented messaging middleware) platform. It addresses the problem of ensuring reliable delivery of SOAP messages between Web service endpoints when the underlying transport, such as Hypertext Transfer Protocol (HTTP), does not provide end-to-end reliability. By implementing the WS-RM specification, Sandesha2 enables service developers and operators to configure and enforce reliable messaging guarantees within the Axis2 runtime.

The project implements core WS-ReliableMessaging protocol functions (messaging protocol implementation), including message sequence creation and management, acknowledgment of received messages, retransmission of unacknowledged messages, and termination of sequences. These functions are exposed through the Axis2 module model (SOA / Web services runtime), which allows Sandesha2 to be engaged on both service and client sides. The module interprets WS-RM headers within SOAP messages and coordinates protocol state across multiple messages in a sequence.

Sandesha2 supports delivery assurances defined by WS-RM (message reliability), such as in-order delivery and at-least-once or at-most-once semantics, through the combination of protocol state tracking and retransmission logic. Configuration is typically managed through Axis2 configuration files and WS-Policy-based descriptors (service configuration and governance), allowing administrators to enable or disable reliable messaging, tune retransmission intervals, and define reliability policies per service or operation.

In enterprise environments, Sandesha2 is used as part of Axis2-based Web services stacks (SOA / Web services infrastructure) where reliable business messaging is required across distributed applications. Typical use cases include service-to-service integration where message loss or duplication is not acceptable and where application-level retry logic would be complex or inconsistent. By embedding WS-RM behavior into the messaging layer, Sandesha2 allows architects to separate transport reliability concerns from business logic.

Architecturally, Sandesha2 operates alongside other Axis2 modules (SOA extension framework), such as modules for WS-Security or WS-Addressing when present, and relies on the Axis2 engine for SOAP processing and transport abstraction. It works with standard SOAP over HTTP and potentially other Axis2-supported transports (network transport abstraction), as long as they can carry the required SOAP and WS-RM headers. Its design follows Apache Axis2’s modular deployment approach, where reliable messaging can be engaged declaratively without code changes to existing services, provided they run on the Axis2 engine.

Within a technical directory, Apache Sandesha2 can be categorized as a WS-ReliableMessaging implementation for Web services (reliable messaging middleware), an Axis2 module (SOA runtime extension), and a protocol-specific component that adds reliability semantics to SOAP-based service communication (enterprise integration infrastructure).