Enterprise Integration Patterns
Conversation Patterns
Table of ContentsConversation Patterns » Introduction

 Table of Contents Detailed table of contents.
Describing Conversations
 Introduction to Describing Conversations ●● 
 Choreography ●○How can a conversation policy be described?
 Orchestration ○○How can a participant describe what conversations it is willing to engage in?
 Hypermedia State ○○How can a participant describe what it expects from a consumer without defining all rules of the conversation up-front?
 Conversation Vocabulary ○○ 
 Introduction to Discovery ●● 
 Dynamic Discovery ●●How can a conversation initiator find a partner when it has no knowledge whatsoever about available partners?
 Advertise Availability ●○How can a participant let others know that it is available?
 Consult Directory ●○How can a conversation initiator find a partner across a large network without flooding the network with requests?
 Referral ●●The choice of conversation partner may depend on the context of a conversation or may change over time. How can an initiator discover the right conversation partner?
 Leader Election ○○How can a set of participants agree on a single participant assuming a special role?
Starting a Conversation
 Starting a Conversation ●○ 
 Three-Way Hand Shake ○○How can two services sync up so they can start a conversation from the same point?
 Acquire Token First ●○How can a provider ascertain the identity of a requestor?
 Rotate Tokens ○○ 
 Verify Identity ○○How can a provider verify the claimed identity of a consumer in the absence of a certificate authority?
 User Grants Access ●○How can a participant engage in a conversation on behalf of a user?
Basic Conversations
 Introduction to Basic Conversations ●○ 
 Fire-and-Forget ●●How can one participant notify another efficiently?
 Asynchronous Request-Response ●●How can a consumer request information from a provider?
 Request-Response with Retry ●●How can a consumer deal with a missing response message in a Request-Response conversation?
 Polling ●●How can a service request information from a provider if an immediate response is not available and it cannot accept unsolicited incoming messages?
 Subscribe-Notify ●●How can one participant receive information from another participant if that information cannot easily be packaged into a single message?
 Quick Acknowledgment ●●How can a client be sure the service accepted a request, even if processing the request takes a long time?
 Intermediaries ●● 
 Proxy ●●How can a participant communicate with a partner that is not visible or not reachable?
 Relay ●●How can participants engage in a two-way communication when each participant is limited to outbound requests?
 Load Balancer ●○How can incoming messages be shared among the providers?
 Scatter-Gather ●○How can a participant solicit responses from a number of participants without connecting to all of them?
Managing Distributed Systems
 System Management ○○ 
 Heartbeat ●○How one know that another participant is working properly and is ready to receive messages?
Resource Management
 Introduction to Resource Management ●○ 
 Incremental State Build-up ●○How can a participant invoke an operation when the it does not have all required information available at the same time?
 Lease ●●How can a service provider avoid holding resources for clients who are no longer interested?
 Renewal Reminder ●●How can a service provider avoid holding resources for clients who are no longer interested?
Ensuring Consistency
 Ensuring Consistency ●● 
 Ignore Error ●●How can a requestor cope with a failing request to a provider?
 Compensating Action ●●How can a requestor ensure a consistent outcome across multiple, independent providers?
 Tentative Operation ●●How can a requestor ensure a consistent outcome across multiple, independent providers?
 Coordinated Agreement ●●How can agreement across multiple participants be achieved so that all participants see the same outcome?
 Bibliography Annotated list of references and recommended reading.