Load Balancer
Diagram: Load Balancer · 21 elements
{
"type": "excalidraw",
"version": 2,
"source": "https://marketplace.visualstudio.com/items?itemName=pomdtr.excalidraw-editor",
"elements": [
{
"id": "nYm2TKM9zWwGw2c9_8yKE",
"type": "text",
"x": 951.1875,
"y": 192.4375,
"width": 136.81988525390625,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a0",
"roundness": null,
"seed": 1538475905,
"version": 48,
"versionNonce": 330467937,
"isDeleted": false,
"boundElements": [],
"updated": 1766951519994,
"link": null,
"locked": false,
"text": "Load Balancer\n",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "Load Balancer\n",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "fhVmIZ_Lma0-ad_T0lTxP",
"type": "rectangle",
"x": 929.484375,
"y": 487.28125,
"width": 123.359375,
"height": 74.796875,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1",
"roundness": {
"type": 3
},
"seed": 1745569967,
"version": 39,
"versionNonce": 1744402369,
"isDeleted": false,
"boundElements": [
{
"id": "M1RXElSi7bABGVMcN3xaE",
"type": "arrow"
},
{
"id": "4jhYQP-GMtNDRwirrUNKz",
"type": "arrow"
},
{
"id": "FKPka70Jcp1Sj0kReAfRn",
"type": "arrow"
},
{
"id": "Ntx5cYiOx7E87PG3y8of9",
"type": "arrow"
},
{
"type": "text",
"id": "yM8QPZD0vdV1y3ggQaJEB"
}
],
"updated": 1766950999688,
"link": null,
"locked": false
},
{
"id": "yM8QPZD0vdV1y3ggQaJEB",
"type": "text",
"x": 978.1240768432617,
"y": 512.1796875,
"width": 26.079971313476562,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1V",
"roundness": null,
"seed": 1579896495,
"version": 4,
"versionNonce": 1583546159,
"isDeleted": false,
"boundElements": [],
"updated": 1766951001378,
"link": null,
"locked": false,
"text": "LB",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "fhVmIZ_Lma0-ad_T0lTxP",
"originalText": "LB",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "gzQNxutpkS_wO9TpXPNKk",
"type": "rectangle",
"x": 1207.203125,
"y": 383.65625,
"width": 81.3671875,
"height": 56.17578125,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a2",
"roundness": {
"type": 3
},
"seed": 706669295,
"version": 25,
"versionNonce": 332352705,
"isDeleted": false,
"boundElements": [
{
"id": "M1RXElSi7bABGVMcN3xaE",
"type": "arrow"
},
{
"type": "text",
"id": "g7gBr1K25Wfl1uPBdOgI5"
}
],
"updated": 1766950984340,
"link": null,
"locked": false
},
{
"id": "g7gBr1K25Wfl1uPBdOgI5",
"type": "text",
"x": 1221.1867370605469,
"y": 399.244140625,
"width": 53.39996337890625,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a2V",
"roundness": null,
"seed": 233613743,
"version": 7,
"versionNonce": 1118581903,
"isDeleted": false,
"boundElements": [],
"updated": 1766950987255,
"link": null,
"locked": false,
"text": "SVC 1",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "gzQNxutpkS_wO9TpXPNKk",
"originalText": "SVC 1",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "HDs1Krl6zrlcgKIMjZ-fI",
"type": "rectangle",
"x": 1208.453125,
"y": 474.1875,
"width": 83.52734375,
"height": 61.625,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a3",
"roundness": {
"type": 3
},
"seed": 1619646913,
"version": 67,
"versionNonce": 687287023,
"isDeleted": false,
"boundElements": [
{
"id": "4jhYQP-GMtNDRwirrUNKz",
"type": "arrow"
},
{
"type": "text",
"id": "jp4_KSmntUcFPA_1gSBDL"
}
],
"updated": 1766950988787,
"link": null,
"locked": false
},
{
"id": "jp4_KSmntUcFPA_1gSBDL",
"type": "text",
"x": 1220.7868118286133,
"y": 492.5,
"width": 58.85997009277344,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a3V",
"roundness": null,
"seed": 2068487073,
"version": 7,
"versionNonce": 834480833,
"isDeleted": false,
"boundElements": [],
"updated": 1766950991206,
"link": null,
"locked": false,
"text": "SVC 2",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "HDs1Krl6zrlcgKIMjZ-fI",
"originalText": "SVC 2",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "sc1otMMkcFAtltDz5ewB7",
"type": "rectangle",
"x": 1208.376953125,
"y": 574.14453125,
"width": 81.3671875,
"height": 56.17578125,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a4",
"roundness": {
"type": 3
},
"seed": 872224737,
"version": 80,
"versionNonce": 407418465,
"isDeleted": false,
"boundElements": [
{
"id": "FKPka70Jcp1Sj0kReAfRn",
"type": "arrow"
},
{
"type": "text",
"id": "vBFv3vOF93U0W5NbguQpR"
}
],
"updated": 1766950992552,
"link": null,
"locked": false
},
{
"id": "vBFv3vOF93U0W5NbguQpR",
"type": "text",
"x": 1220.5505676269531,
"y": 589.732421875,
"width": 57.01995849609375,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a4V",
"roundness": null,
"seed": 1120974351,
"version": 9,
"versionNonce": 1587199279,
"isDeleted": false,
"boundElements": [],
"updated": 1766950995220,
"link": null,
"locked": false,
"text": "SVC 3",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "sc1otMMkcFAtltDz5ewB7",
"originalText": "SVC 3",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "9YGkqGSAo5oJnMLezW3Gg",
"type": "rectangle",
"x": 1209.626953125,
"y": 664.67578125,
"width": 83.52734375,
"height": 61.625,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a5",
"roundness": {
"type": 3
},
"seed": 322008001,
"version": 122,
"versionNonce": 1827600271,
"isDeleted": false,
"boundElements": [
{
"id": "Ntx5cYiOx7E87PG3y8of9",
"type": "arrow"
},
{
"type": "text",
"id": "1gzMa0aewjYK2yzs9Mhbu"
}
],
"updated": 1766950996451,
"link": null,
"locked": false
},
{
"id": "1gzMa0aewjYK2yzs9Mhbu",
"type": "text",
"x": 1223.1106414794922,
"y": 682.98828125,
"width": 56.559967041015625,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a5V",
"roundness": null,
"seed": 593597697,
"version": 7,
"versionNonce": 495743009,
"isDeleted": false,
"boundElements": [],
"updated": 1766950998421,
"link": null,
"locked": false,
"text": "SVC 4",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "9YGkqGSAo5oJnMLezW3Gg",
"originalText": "SVC 4",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "M1RXElSi7bABGVMcN3xaE",
"type": "arrow",
"x": 1052.53125,
"y": 501.125,
"width": 152.4765625,
"height": 94.9375,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a6",
"roundness": {
"type": 2
},
"seed": 1933013039,
"version": 34,
"versionNonce": 1407037441,
"isDeleted": false,
"boundElements": [],
"updated": 1766949929197,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
152.4765625,
-94.9375
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "fhVmIZ_Lma0-ad_T0lTxP",
"focus": 0.19332844334630897,
"gap": 1
},
"endBinding": {
"elementId": "gzQNxutpkS_wO9TpXPNKk",
"focus": 0.6038044029201937,
"gap": 2.1953125
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "4jhYQP-GMtNDRwirrUNKz",
"type": "arrow",
"x": 1060.34375,
"y": 530.40625,
"width": 151.67578125,
"height": 24.73046875,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a7",
"roundness": {
"type": 2
},
"seed": 1540977871,
"version": 44,
"versionNonce": 1145155777,
"isDeleted": false,
"boundElements": [],
"updated": 1766949933130,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
151.67578125,
-24.73046875
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "fhVmIZ_Lma0-ad_T0lTxP",
"focus": 0.3583630022153869,
"gap": 7.5
},
"endBinding": {
"elementId": "HDs1Krl6zrlcgKIMjZ-fI",
"focus": 0.14757898558500027,
"gap": 3.56640625
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "FKPka70Jcp1Sj0kReAfRn",
"type": "arrow",
"x": 1050.078125,
"y": 539.125,
"width": 160.3046875,
"height": 75.85546875,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a8",
"roundness": {
"type": 2
},
"seed": 1859194895,
"version": 43,
"versionNonce": 305285359,
"isDeleted": false,
"boundElements": [],
"updated": 1766949936813,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
160.3046875,
75.85546875
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "fhVmIZ_Lma0-ad_T0lTxP",
"focus": -0.2017355657689101,
"gap": 2.765625
},
"endBinding": {
"elementId": "sc1otMMkcFAtltDz5ewB7",
"focus": -0.6559085926765998,
"gap": 2.005859375
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "Ntx5cYiOx7E87PG3y8of9",
"type": "arrow",
"x": 1046.4375,
"y": 553.78125,
"width": 158.9921875,
"height": 133.12109375,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a9",
"roundness": {
"type": 2
},
"seed": 345150785,
"version": 40,
"versionNonce": 2007886831,
"isDeleted": false,
"boundElements": [],
"updated": 1766949940130,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
158.9921875,
133.12109375
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "fhVmIZ_Lma0-ad_T0lTxP",
"focus": -0.1929189436972877,
"gap": 3.691931699023895
},
"endBinding": {
"elementId": "9YGkqGSAo5oJnMLezW3Gg",
"focus": -0.4544858588249911,
"gap": 4.197265625
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "algorithm-details-1",
"type": "text",
"x": 1357.729397390838,
"y": 329.72975776137713,
"width": 850,
"height": 467.5,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "#ffebee",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aB",
"roundness": {
"type": 3
},
"seed": 123456,
"version": 195,
"versionNonce": 1334264399,
"isDeleted": false,
"boundElements": [],
"updated": 1766951289168,
"link": null,
"locked": false,
"text": "LOAD BALANCING ALGORITHMS DETAILED\n\n1. ROUND ROBIN: \n- Sequential distribution to each server. \n- Fair but doesn't consider server load. \n- Best for uniform server capacity.\n\n2. STICKY/SESSION AFFINITY: \n- Route same client to same server (session state). \n- Use cookies or IP-based identification.\n\n3. WEIGHTED RR: \n- Assign weights based on capacity. \n- Server with weight 3 gets 3x more requests than weight 1.\n\n4. IP HASH: \n- Hash client IP to determine server. \n- Ensures same client hits same server. \n- Good for stateful apps.\n\n5. LEAST CONNECTIONS: \n- Route to server with fewest active connections. \n- Dynamic, adapts to real load. \n- Better for long-lived connections.\n\n6. LOWEST RESPONSE TIME: \n- Route to server with fastest response time (weighted by active connections). \n- Most intelligent but requires monitoring.\n\n7. LAYER 4 vs LAYER 7:\n Layer 4 (TCP/UDP): Fast, simple, header-based routing.\n - Use for non-HTTP protocols or ultra-low latency.\n Layer 7 (HTTP/HTTPS): Content-aware, can route by URL path, hostname, headers. \n - More powerful but slower.",
"fontSize": 11,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "LOAD BALANCING ALGORITHMS DETAILED\n\n1. ROUND ROBIN: \n- Sequential distribution to each server. \n- Fair but doesn't consider server load. \n- Best for uniform server capacity.\n\n2. STICKY/SESSION AFFINITY: \n- Route same client to same server (session state). \n- Use cookies or IP-based identification.\n\n3. WEIGHTED RR: \n- Assign weights based on capacity. \n- Server with weight 3 gets 3x more requests than weight 1.\n\n4. IP HASH: \n- Hash client IP to determine server. \n- Ensures same client hits same server. \n- Good for stateful apps.\n\n5. LEAST CONNECTIONS: \n- Route to server with fewest active connections. \n- Dynamic, adapts to real load. \n- Better for long-lived connections.\n\n6. LOWEST RESPONSE TIME: \n- Route to server with fastest response time (weighted by active connections). \n- Most intelligent but requires monitoring.\n\n7. LAYER 4 vs LAYER 7:\n Layer 4 (TCP/UDP): Fast, simple, header-based routing.\n - Use for non-HTTP protocols or ultra-low latency.\n Layer 7 (HTTP/HTTPS): Content-aware, can route by URL path, hostname, headers. \n - More powerful but slower.",
"autoResize": false,
"lineHeight": 1.25
},
{
"id": "lb-strategies",
"type": "text",
"x": 574.0250763941673,
"y": 370.2140279163406,
"width": 295.8437499999999,
"height": 275,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "#f1f8f4",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aD",
"roundness": {
"type": 3
},
"seed": 123458,
"version": 286,
"versionNonce": 198317321,
"isDeleted": false,
"boundElements": [],
"updated": 1773446883140,
"link": null,
"locked": false,
"text": "LOAD BALANCER DEPLOYMENT STRATEGIES\n\n1. SINGLE LB: \n- Simple but creates single point of failure. \n- Not production-ready.\n\n2. HA PAIR (Active-Passive): \n- Two LBs with heartbeat. \n- Passive takes over if active fails. \n- Uses VIP (Virtual IP).\n\n3. ACTIVE-ACTIVE: \n- Multiple LBs handling traffic simultaneously. \n- DNS round-robin or Anycast. \n- Requires session replication or sticky sessions.\n\n4. GEOGRAPHIC LB: \n- Route users to nearest datacenter. \n- Lower latency, compliance. \n- Use GeoDNS.",
"fontSize": 11,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "LOAD BALANCER DEPLOYMENT STRATEGIES\n\n1. SINGLE LB: \n- Simple but creates single point of failure. \n- Not production-ready.\n\n2. HA PAIR (Active-Passive): \n- Two LBs with heartbeat. \n- Passive takes over if active fails. \n- Uses VIP (Virtual IP).\n\n3. ACTIVE-ACTIVE: \n- Multiple LBs handling traffic simultaneously. \n- DNS round-robin or Anycast. \n- Requires session replication or sticky sessions.\n\n4. GEOGRAPHIC LB: \n- Route users to nearest datacenter. \n- Lower latency, compliance. \n- Use GeoDNS.",
"autoResize": false,
"lineHeight": 1.25
},
{
"id": "health-checks",
"type": "text",
"x": 587.5194009460372,
"y": 662.3245461984759,
"width": 850,
"height": 233.75,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "#fff3e0",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aE",
"roundness": {
"type": 3
},
"seed": 123459,
"version": 195,
"versionNonce": 281829921,
"isDeleted": false,
"boundElements": [],
"updated": 1766951523610,
"link": null,
"locked": false,
"text": "HEALTH CHECKS (Critical for High Availability)\n\n1. TCP PROBE: Lightweight, fast. \n- Check if port is open. \n- Doesn't verify service health.\n\n2. HTTP/HTTPS: GET /health endpoint. \n- Can check dependencies (DB, cache). \n- Proper status codes (200=healthy, 503=sick).\n\n3. PASSIVE CHECKS: \n- Monitor error rates/response times. \n- Detect degradation in real-time.\n\n4. HEARTBEAT INTERVAL: 5-10 sec typical. \n- Lower = faster detection but more overhead. \n- Higher = less overhead but slower failover.",
"fontSize": 11,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "HEALTH CHECKS (Critical for High Availability)\n\n1. TCP PROBE: Lightweight, fast. \n- Check if port is open. \n- Doesn't verify service health.\n\n2. HTTP/HTTPS: GET /health endpoint. \n- Can check dependencies (DB, cache). \n- Proper status codes (200=healthy, 503=sick).\n\n3. PASSIVE CHECKS: \n- Monitor error rates/response times. \n- Detect degradation in real-time.\n\n4. HEARTBEAT INTERVAL: 5-10 sec typical. \n- Lower = faster detection but more overhead. \n- Higher = less overhead but slower failover.",
"autoResize": false,
"lineHeight": 1.25
},
{
"id": "session-persistence",
"type": "text",
"x": 1373.8192785969577,
"y": 843.43666380767,
"width": 850,
"height": 206.25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "#f3e5f5",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aF",
"roundness": {
"type": 3
},
"seed": 123460,
"version": 223,
"versionNonce": 1177917889,
"isDeleted": false,
"boundElements": [],
"updated": 1766951577690,
"link": null,
"locked": false,
"text": "SESSION PERSISTENCE / STICKINESS\n\n1. COOKIE-BASED: \n- LB sets cookie with server ID. \n- Browser sends cookie on next request. Works across browsers but insecure (client can modify).\n\n2. IP-BASED (IP HASH): \n- Hash client IP to determine server. \n- Simple but issues with shared proxy IPs or mobile users.\n\n3. DISTRIBUTED SESSION STORE: \n- Store session in Redis/Memcached. \n- No affinity needed. \n- Stateless servers. \n- Recommended for microservices.",
"fontSize": 11,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "SESSION PERSISTENCE / STICKINESS\n\n1. COOKIE-BASED: \n- LB sets cookie with server ID. \n- Browser sends cookie on next request. Works across browsers but insecure (client can modify).\n\n2. IP-BASED (IP HASH): \n- Hash client IP to determine server. \n- Simple but issues with shared proxy IPs or mobile users.\n\n3. DISTRIBUTED SESSION STORE: \n- Store session in Redis/Memcached. \n- No affinity needed. \n- Stateless servers. \n- Recommended for microservices.",
"autoResize": false,
"lineHeight": 1.25
},
{
"id": "recommendations",
"type": "text",
"x": 767.6021306658492,
"y": 975.4521294960005,
"width": 850,
"height": 206.25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "#ffebee",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aG",
"roundness": {
"type": 3
},
"seed": 123461,
"version": 149,
"versionNonce": 821179425,
"isDeleted": false,
"boundElements": [],
"updated": 1766951559598,
"link": null,
"locked": false,
"text": "RECOMMENDATIONS & BEST PRACTICES\n\n1. USE CDN FOR STATIC CONTENT: Cloudflare, Akamai reduce origin load.\n\n2. CONNECTION POOLING: LB maintains persistent connections to backends. Reduces latency.\n\n3. CIRCUIT BREAKER: Prevent cascading failures. Stop routing to unhealthy servers temporarily.\n\n4. RATE LIMITING: LB should limit per-client rates to prevent DDoS.\n\n5. MONITORING & LOGGING: Track request distribution, latency, error rates. Use metrics: p50, p95, p99 latency.\n\n6. GRACEFUL DEGRADATION: Shed load or reduce features if all servers overloaded.\n\n7. REAL-WORLD USE: AWS ELB, Google Cloud Load Balancer, Azure LB, HAProxy, NGINX Plus",
"fontSize": 11,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "RECOMMENDATIONS & BEST PRACTICES\n\n1. USE CDN FOR STATIC CONTENT: Cloudflare, Akamai reduce origin load.\n\n2. CONNECTION POOLING: LB maintains persistent connections to backends. Reduces latency.\n\n3. CIRCUIT BREAKER: Prevent cascading failures. Stop routing to unhealthy servers temporarily.\n\n4. RATE LIMITING: LB should limit per-client rates to prevent DDoS.\n\n5. MONITORING & LOGGING: Track request distribution, latency, error rates. Use metrics: p50, p95, p99 latency.\n\n6. GRACEFUL DEGRADATION: Shed load or reduce features if all servers overloaded.\n\n7. REAL-WORLD USE: AWS ELB, Google Cloud Load Balancer, Azure LB, HAProxy, NGINX Plus",
"autoResize": false,
"lineHeight": 1.25
},
{
"id": "comparison-content",
"type": "text",
"x": 1992.1667972938544,
"y": 417.1722916472284,
"width": 469.54322909113523,
"height": 172.5002689225919,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 1,
"strokeStyle": "solid",
"roughness": 0,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aI",
"roundness": null,
"seed": 123463,
"version": 352,
"versionNonce": 1634565319,
"isDeleted": false,
"boundElements": [],
"updated": 1773446899663,
"link": null,
"locked": false,
"text": "ALGORITHM COMPARISON TABLE\n\nAlgorithm | Complexity | Fairness | Awareness | State | Use Case\n─────────────────────────────────────\nRound Robin | O(1) | Perfect | None | No | Uniform servers\n\nSticky RR | O(1) | Perfect | None | Yes | Session state\n\nIP Hash | O(1) | Good | Client IP | No | Stateful apps\n\nLeast Connections | O(log n) | Good | Real-time | Yes | Long connections\n\nLowest Response | O(log n) | Excellent| Real-time | Yes | Heterogeneous loads",
"fontSize": 10.615401164467194,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "ALGORITHM COMPARISON TABLE\n\nAlgorithm | Complexity | Fairness | Awareness | State | Use Case\n─────────────────────────────────────\nRound Robin | O(1) | Perfect | None | No | Uniform servers\n\nSticky RR | O(1) | Perfect | None | Yes | Session state\n\nIP Hash | O(1) | Good | Client IP | No | Stateful apps\n\nLeast Connections | O(log n) | Good | Real-time | Yes | Long connections\n\nLowest Response | O(log n) | Excellent| Real-time | Yes | Heterogeneous loads",
"autoResize": false,
"lineHeight": 1.25
}
],
"appState": {
"gridSize": 20,
"gridStep": 5,
"gridModeEnabled": false,
"viewBackgroundColor": "#ffffff"
},
"files": {}
}