Home > Design Patterns > Reliable Messaging
Reliable Messaging

Reliable Messaging (Little, Rischbeck, Simon)

How can services communicate reliably when implemented in an unreliable environment?

Problem

Service communication cannot be guaranteed when using unreliable messaging protocols or when dependent on an otherwise unreliable environment.

Solution

An intermediate reliability mechanism is introduced into the inventory architecture, ensuring that message delivery is guaranteed.

Application

Middleware, service agents, and data stores are deployed to track message deliveries, manage the issuance of acknowledgements, and persist messages during failure conditions.

Impacts

Using a reliability framework adds processing overhead that can affect service activity performance. It also increases composition design complexity and may not be compatible with Atomic Service Transaction.

Architecture

Inventory, Composition

Listen to the podcasts that accompany this site

Reliable Messaging: When building services as Web services, this pattern is commonly applied by implementing a combination of the WS-ReliableMessaging standard (A) and guaranteed delivery extensions, such as a persistent repository (B). This figure highlights the typical moving parts of the resulting reliability framework.

When building services as Web services, this pattern is commonly applied by implementing a combination of the WS-ReliableMessaging standard (A) and guaranteed delivery extensions, such as a persistent repository (B). This figure highlights the typical moving parts of the resulting reliability framework.