Load-Balancer-diagram.excalidraw

==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠==

Load Balancer — L4 vs L7 Topology Diagram

Text Elements

L4 (Transport) ^l4-label L7 (Application) ^l7-label Clients ^l4-clients Clients ^l7-clients Load Balancer (L4) ^l4-lb Load Balancer (L7) ^l7-lb Backend-1 ^l4-b1 Backend-2 ^l4-b2 Backend-3 ^l4-b3 API Server-1 ^l7-api1 API Server-2 ^l7-api2 Static Cache-1 ^l7-static1 Static Cache-2 ^l7-static2 TCP/UDP, no content inspection, fastest ^l4-desc HTTP aware, path/header routing, SSL termination ^l7-desc /api ^l7-route-api /static ^l7-route-static Algorithms: Round-Robin, Least-Connections, IP-Hash, Weighted ^algo-label

%%

Drawing

{
  "type": "excalidraw",
  "version": 2,
  "source": "https://excalidraw.com",
  "elements": [
    {
      "id": "l4-label",
      "type": "text",
      "x": 60,
      "y": 20,
      "width": 200,
      "height": 28,
      "text": "L4 (Transport)",
      "fontSize": 20,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "top",
      "strokeColor": "#1971c2",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-label",
      "type": "text",
      "x": 440,
      "y": 20,
      "width": 220,
      "height": 28,
      "text": "L7 (Application)",
      "fontSize": 20,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "top",
      "strokeColor": "#e67700",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-clients-box",
      "type": "rectangle",
      "x": 80,
      "y": 60,
      "width": 160,
      "height": 40,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#f8f9fa",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-clients-text",
      "type": "text",
      "x": 100,
      "y": 72,
      "width": 120,
      "height": 20,
      "text": "Clients",
      "fontSize": 14,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "arrow-l4-clients-lb",
      "type": "arrow",
      "x": 160,
      "y": 100,
      "width": 0,
      "height": 50,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100,
      "points": [[0, 0], [0, 50]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "l4-lb-box",
      "type": "rectangle",
      "x": 80,
      "y": 150,
      "width": 160,
      "height": 50,
      "strokeColor": "#1971c2",
      "backgroundColor": "#e7f5ff",
      "fillStyle": "solid",
      "strokeWidth": 3,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-lb-text",
      "type": "text",
      "x": 88,
      "y": 163,
      "width": 144,
      "height": 24,
      "text": "Load Balancer (L4)",
      "fontSize": 13,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#1971c2",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-b1-box",
      "type": "rectangle",
      "x": 20,
      "y": 260,
      "width": 100,
      "height": 40,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ebfbee",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-b1-text",
      "type": "text",
      "x": 30,
      "y": 272,
      "width": 80,
      "height": 20,
      "text": "Backend-1",
      "fontSize": 13,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-b2-box",
      "type": "rectangle",
      "x": 110,
      "y": 260,
      "width": 100,
      "height": 40,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ebfbee",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-b2-text",
      "type": "text",
      "x": 120,
      "y": 272,
      "width": 80,
      "height": 20,
      "text": "Backend-2",
      "fontSize": 13,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-b3-box",
      "type": "rectangle",
      "x": 200,
      "y": 260,
      "width": 100,
      "height": 40,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ebfbee",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l4-b3-text",
      "type": "text",
      "x": 210,
      "y": 272,
      "width": 80,
      "height": 20,
      "text": "Backend-3",
      "fontSize": 13,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "arrow-l4-lb-b1",
      "type": "arrow",
      "x": 130,
      "y": 200,
      "width": -60,
      "height": 60,
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100,
      "points": [[0, 0], [-60, 60]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "arrow-l4-lb-b2",
      "type": "arrow",
      "x": 160,
      "y": 200,
      "width": 0,
      "height": 60,
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100,
      "points": [[0, 0], [0, 60]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "arrow-l4-lb-b3",
      "type": "arrow",
      "x": 190,
      "y": 200,
      "width": 60,
      "height": 60,
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100,
      "points": [[0, 0], [60, 60]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "arrow-l4-hc-b1",
      "type": "arrow",
      "x": 70,
      "y": 280,
      "width": -20,
      "height": -60,
      "strokeColor": "#868e96",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "strokeStyle": "dashed",
      "opacity": 100,
      "points": [[0, 0], [-20, -60]],
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "label": {
        "text": "health check",
        "fontSize": 9,
        "strokeColor": "#868e96"
      }
    },
    {
      "id": "arrow-l4-hc-b2",
      "type": "arrow",
      "x": 160,
      "y": 280,
      "width": 0,
      "height": -60,
      "strokeColor": "#868e96",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "strokeStyle": "dashed",
      "opacity": 100,
      "points": [[0, 0], [0, -60]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "arrow-l4-hc-b3",
      "type": "arrow",
      "x": 250,
      "y": 280,
      "width": 20,
      "height": -60,
      "strokeColor": "#868e96",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "strokeStyle": "dashed",
      "opacity": 100,
      "points": [[0, 0], [20, -60]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "l4-desc-text",
      "type": "text",
      "x": 20,
      "y": 315,
      "width": 280,
      "height": 20,
      "text": "TCP/UDP, no content inspection, fastest",
      "fontSize": 12,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "top",
      "strokeColor": "#1971c2",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-clients-box",
      "type": "rectangle",
      "x": 440,
      "y": 60,
      "width": 220,
      "height": 40,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "#f8f9fa",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-clients-text",
      "type": "text",
      "x": 490,
      "y": 72,
      "width": 120,
      "height": 20,
      "text": "Clients",
      "fontSize": 14,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "arrow-l7-clients-lb",
      "type": "arrow",
      "x": 550,
      "y": 100,
      "width": 0,
      "height": 50,
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100,
      "points": [[0, 0], [0, 50]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "l7-lb-box",
      "type": "rectangle",
      "x": 440,
      "y": 150,
      "width": 220,
      "height": 50,
      "strokeColor": "#e67700",
      "backgroundColor": "#fff3bf",
      "fillStyle": "solid",
      "strokeWidth": 3,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-lb-text",
      "type": "text",
      "x": 460,
      "y": 163,
      "width": 180,
      "height": 24,
      "text": "Load Balancer (L7)",
      "fontSize": 13,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#e67700",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "arrow-l7-lb-api",
      "type": "arrow",
      "x": 510,
      "y": 200,
      "width": -60,
      "height": 60,
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100,
      "points": [[0, 0], [-60, 60]],
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "label": {
        "text": "/api",
        "fontSize": 11,
        "strokeColor": "#2f9e44"
      }
    },
    {
      "id": "arrow-l7-lb-static",
      "type": "arrow",
      "x": 590,
      "y": 200,
      "width": 60,
      "height": 60,
      "strokeColor": "#1971c2",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100,
      "points": [[0, 0], [60, 60]],
      "startArrowhead": null,
      "endArrowhead": "arrow",
      "label": {
        "text": "/static",
        "fontSize": 11,
        "strokeColor": "#1971c2"
      }
    },
    {
      "id": "l7-api1-box",
      "type": "rectangle",
      "x": 400,
      "y": 260,
      "width": 120,
      "height": 36,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ebfbee",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-api1-text",
      "type": "text",
      "x": 410,
      "y": 270,
      "width": 100,
      "height": 20,
      "text": "API Server-1",
      "fontSize": 12,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-api2-box",
      "type": "rectangle",
      "x": 400,
      "y": 306,
      "width": 120,
      "height": 36,
      "strokeColor": "#2f9e44",
      "backgroundColor": "#ebfbee",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-api2-text",
      "type": "text",
      "x": 410,
      "y": 316,
      "width": 100,
      "height": 20,
      "text": "API Server-2",
      "fontSize": 12,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#2f9e44",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-static1-box",
      "type": "rectangle",
      "x": 580,
      "y": 260,
      "width": 120,
      "height": 36,
      "strokeColor": "#1971c2",
      "backgroundColor": "#e7f5ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-static1-text",
      "type": "text",
      "x": 586,
      "y": 270,
      "width": 108,
      "height": 20,
      "text": "Static Cache-1",
      "fontSize": 12,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#1971c2",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-static2-box",
      "type": "rectangle",
      "x": 580,
      "y": 306,
      "width": 120,
      "height": 36,
      "strokeColor": "#1971c2",
      "backgroundColor": "#e7f5ff",
      "fillStyle": "solid",
      "strokeWidth": 2,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "l7-static2-text",
      "type": "text",
      "x": 586,
      "y": 316,
      "width": 108,
      "height": 20,
      "text": "Static Cache-2",
      "fontSize": 12,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "middle",
      "strokeColor": "#1971c2",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "arrow-l7-hc-api",
      "type": "arrow",
      "x": 460,
      "y": 296,
      "width": 80,
      "height": -60,
      "strokeColor": "#868e96",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "strokeStyle": "dashed",
      "opacity": 100,
      "points": [[0, 0], [80, -60]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "arrow-l7-hc-static",
      "type": "arrow",
      "x": 640,
      "y": 296,
      "width": -60,
      "height": -60,
      "strokeColor": "#868e96",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "strokeStyle": "dashed",
      "opacity": 100,
      "points": [[0, 0], [-60, -60]],
      "startArrowhead": null,
      "endArrowhead": "arrow"
    },
    {
      "id": "l7-desc-text",
      "type": "text",
      "x": 400,
      "y": 358,
      "width": 320,
      "height": 20,
      "text": "HTTP aware, path/header routing, SSL termination",
      "fontSize": 12,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "top",
      "strokeColor": "#e67700",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    },
    {
      "id": "algo-label-text",
      "type": "text",
      "x": 60,
      "y": 400,
      "width": 680,
      "height": 20,
      "text": "Algorithms: Round-Robin, Least-Connections, IP-Hash, Weighted",
      "fontSize": 13,
      "fontFamily": 1,
      "textAlign": "center",
      "verticalAlign": "top",
      "strokeColor": "#1e1e1e",
      "backgroundColor": "transparent",
      "fillStyle": "solid",
      "strokeWidth": 1,
      "roughness": 1,
      "opacity": 100
    }
  ],
  "appState": {
    "gridSize": null,
    "viewBackgroundColor": "#ffffff"
  },
  "files": {}
}

%%