Enterprise Integration Patterns
Conversation Patterns
HOME PATTERNS RAMBLINGS ARTICLES TALKS DOWNLOAD BOOKS CONTACT
Three-Way Hand ShakeConversation Patterns » Starting a Conversation

A participant has identified a conversation partner and is about to initiate a conversation.

How can two services sync up so they can start a conversation from the same point?

  • Reliable protocols over unreliable channels often require sequence numbers to detect lost messages. Both parties need to start with the same sequence number so they can detect if the first message is already lost.
  • Conversation partners may want to agree on parameters of the conversation, based on both parties' capabilities. For example, if both parties support compression or binary encoding, they can agree to switch to this more efficient message format.

A Three-Way Hand Shake has the requestor initiating a conversation, followed by an acknowledgment (Ack) by the conversation partner, to which the initiator replies with an acknowledgment (Ack-Ack).

The Three-Way Hand Shake conversation involves the following participants:

  • The Initiator
  • The conversation Partner

Example

https://tools.ietf.org/html/rfc761#page-29

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