Enterprise Integration Patterns
Conversation Patterns
HOME PATTERNS RAMBLINGS ARTICLES TALKS DOWNLOAD BOOKS CONTACT
Table of ContentsConversation Patterns » Introduction

Introduction
 Overview 
 Preface 
 Table of Contents Detailed table of contents.
 Introduction 
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 ○○ 
Discovery
 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
 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?
Appendices
 Bibliography Annotated list of references and recommended reading.
Introduction
Overview
Preface
Table of Contents
Introduction
Describing Conversations
Choreography
Orchestration
Hypermedia State
Conversation Vocabulary
Discovery
Dynamic Discovery
Advertise Availability
Consult Directory
Referral
Leader Election
Starting a Conversation
Three-Way Hand Shake
Acquire Token First
Rotate Tokens
Verify Identity
User Grants Access
Basic Conversations
Fire-and-Forget
Asynchronous Request-Response
Request-Response with Retry
Polling
Subscribe-Notify
Quick Acknowledgment
Intermediaries
Proxy
Relay
Load Balancer
Scatter-Gather
Managing Distributed Systems
Heartbeat
Resource Management
Incremental State Build-up
Lease
Renewal Reminder
Ensuring Consistency
Ignore Error
Compensating Action
Tentative Operation
Coordinated Agreement
Appendices
Bibliography