p2c load balancer
INCOMING REQUEST
│
▼
┌──────────────────────────┐
│ SAMPLE 2 BACKENDS │
│ AT RANDOM FROM POOL │
└────────┬────────┬────────┘
│ │
┌──────▼──┐
┌──▼──────┐
│BACKEND A│
│BACKEND B│
│score=0.9│
│score=0.5│
└──────┬──┘
└─────────┘
│
│ (higher score wins)
▼
┌──────────────────────────┐
│ SEND REQUEST │
└────────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ UPDATE HEALTH AND │
│ PERFORMANCE STATS │
└──────────────────────────┘
sample two, pick the better one — no global state, no coordination
backend pool
B1
B2
B3
B4
B5
B6
B7
OVERVIEW
p2c load balancer
INCOMING REQUEST
│
▼
┌──────────────────────────┐
│ SAMPLE 2 BACKENDS │
│ AT RANDOM FROM POOL │
└────────┬────────┬────────┘
│ │
┌──────▼──┐
┌──▼──────┐
│BACKEND A│
│BACKEND B│
│score=0.9│
│score=0.5│
└──────┬──┘
└─────────┘
│
│ (higher score wins)
▼
┌──────────────────────────┐
│ SEND REQUEST │
└────────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ UPDATE HEALTH AND │
│ PERFORMANCE STATS │
└──────────────────────────┘
a request arrives — every request is also a routing decision
backend pool
B1
B2
B3
B4
B5
B6
B7
RECEIVE
p2c load balancer
INCOMING REQUEST
│
▼
┌──────────────────────────┐
│ SAMPLE 2 BACKENDS │
│ AT RANDOM FROM POOL │
└────────┬────────┬────────┘
│ │
┌──────▼──┐
┌──▼──────┐
│BACKEND A│
│BACKEND B│
│score=0.9│
│score=0.5│
└──────┬──┘
└─────────┘
│
│ (higher score wins)
▼
┌──────────────────────────┐
│ SEND REQUEST │
└────────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ UPDATE HEALTH AND │
│ PERFORMANCE STATS │
└──────────────────────────┘
two backends picked at random — no ranking, no coordination
backend pool
B1
B2
B3
B4
B5
B6
B7
SAMPLE
p2c load balancer
INCOMING REQUEST
│
▼
┌──────────────────────────┐
│ SAMPLE 2 BACKENDS │
│ AT RANDOM FROM POOL │
└────────┬────────┬────────┘
│ │
┌──────▼──┐
┌──▼──────┐
│BACKEND A│
│BACKEND B│
│score=0.9│
│score=0.5│
└──────┬──┘
└─────────┘
│
│ (higher score wins)
▼
┌──────────────────────────┐
│ SEND REQUEST │
└────────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ UPDATE HEALTH AND │
│ PERFORMANCE STATS │
└──────────────────────────┘
one comparison per request — the better score wins
backend pool
B1
B2
B3
B4
B5
B6
B7
COMPARE
p2c load balancer
INCOMING REQUEST
│
▼
┌──────────────────────────┐
│ SAMPLE 2 BACKENDS │
│ AT RANDOM FROM POOL │
└────────┬────────┬────────┘
│ │
┌──────▼──┐
┌──▼──────┐
│BACKEND A│
│BACKEND B│
│score=0.9│
│score=0.5│
└──────┬──┘
└─────────┘
│
│ (higher score wins)
▼
┌──────────────────────────┐
│ SEND REQUEST │
└────────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ UPDATE HEALTH AND │
│ PERFORMANCE STATS │
└──────────────────────────┘
request routed to the higher-scored backend
backend pool
B1
B2
B3
B4
B5
B6
B7
ROUTE
p2c load balancer
INCOMING REQUEST
│
▼
┌──────────────────────────┐
│ SAMPLE 2 BACKENDS │
│ AT RANDOM FROM POOL │
└────────┬────────┬────────┘
│ │
┌──────▼──┐
┌──▼──────┐
│BACKEND A│
│BACKEND B│
│score=0.9│
│score=0.5│
└──────┬──┘
└─────────┘
│
│ (higher score wins)
▼
┌──────────────────────────┐
│ SEND REQUEST │
└────────────┬─────────────┘
│
▼
┌──────────────────────────┐
│ UPDATE HEALTH AND │
│ PERFORMANCE STATS │
└──────────────────────────┘
scores stay fresh — recovery is automatic
backend pool
B1
B2
B3
B4
B5
B6
B7
OBSERVE
prev
play
next