Enterprise Integration Patterns
Conversation Patterns
HOME PATTERNS RAMBLINGS ARTICLES TALKS DOWNLOAD BOOKS CONTACT
Load BalancerConversation Patterns » Intermediaries

Multiple identical providers can service a message.

How can incoming messages be shared among the providers?

  • Can use message queue with competing consumers - most efficient as consumers work at optimal load
  • Message queue does not always work.
  • May need to send related messages to the same participant (stickiness).
  • Providers should not know about each other.

The initiator makes outbound requests to a Load Balancer, which distributes messages across the providers.

The Load Balancer conversation involves the following participants:

  • The Initiator initiates the conversation by sending a message to the Load Balancer.
  • The Load Balancer listens for messages and forwards them to the Providers. The Provider may be unaware of the Load Balancer.
  • The Providers may share information with the Load Balancer to optimize with the distribution of messages.

Load Balancer can receive Heartbeat from Providers

Example: Load Balancer

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