diff --git a/docs/architecture.excalidraw b/docs/architecture.excalidraw index 522a3ba..64d512c 100644 --- a/docs/architecture.excalidraw +++ b/docs/architecture.excalidraw @@ -3,6 +3,36 @@ "version": 2, "source": "mcp-excalidraw-server", "elements": [ + { + "id": "dark-background", + "type": "rectangle", + "x": 10, + "y": -10, + "width": 1950, + "height": 1560, + "angle": 0, + "backgroundColor": "#12151c", + "boundElements": null, + "fillStyle": "solid", + "frameId": null, + "groupIds": [], + "index": "Zz", + "isDeleted": false, + "link": null, + "locked": true, + "opacity": 100, + "roughness": 0, + "roundness": { + "type": 3 + }, + "seed": 319882, + "strokeColor": "#12151c", + "strokeStyle": "solid", + "strokeWidth": 2, + "updated": 1788641941545, + "version": 1, + "versionNonce": 452863072 + }, { "id": "process", "type": "rectangle", @@ -11,7 +41,7 @@ "width": 1000, "height": 1140, "angle": 0, - "backgroundColor": "#f3f0ff", + "backgroundColor": "#1e202d", "boundElements": null, "fillStyle": "solid", "frameId": null, @@ -26,10 +56,10 @@ "type": 3 }, "seed": 693805472, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941545, "version": 1, "versionNonce": 452863072 }, @@ -38,7 +68,7 @@ "type": "text", "x": 40, "y": 20, - "width": 441.3333435058594, + "width": 488.8999938964844, "height": 41.4, "angle": 0, "autoResize": true, @@ -46,7 +76,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 36, "frameId": null, "groupIds": [], @@ -56,16 +86,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Adserver • system architecture", + "originalText": "Adserver \u2022 system architecture", "roughness": 0, "roundness": null, "seed": 1890462112, - "strokeColor": "#1e1e1e", + "strokeColor": "#f1f3f5", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Adserver • system architecture", + "text": "Adserver \u2022 system architecture", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1733283232, "verticalAlign": "top" @@ -75,7 +105,7 @@ "type": "text", "x": 40, "y": 75, - "width": 642.2000122070312, + "width": 709.5999755859375, "height": 23, "angle": 0, "autoResize": true, @@ -83,7 +113,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -97,12 +127,12 @@ "roughness": 0, "roundness": null, "seed": 1473953888, - "strokeColor": "#495057", + "strokeColor": "#b8c0cc", "strokeStyle": "solid", "strokeWidth": 2, "text": "Current repository design | Warm auctions have no Redis or DSP network calls", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1351965792, "verticalAlign": "top" @@ -112,7 +142,7 @@ "type": "text", "x": 410, "y": 180, - "width": 310.76666259765625, + "width": 339.6000061035156, "height": 27.599999999999998, "angle": 0, "autoResize": true, @@ -120,7 +150,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 24, "frameId": null, "groupIds": [], @@ -130,16 +160,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "GO ADSERVER · per instance", + "originalText": "GO ADSERVER \u00b7 per instance", "roughness": 0, "roundness": null, "seed": 947385760, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "text": "GO ADSERVER · per instance", + "text": "GO ADSERVER \u00b7 per instance", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 860166560, "verticalAlign": "top" @@ -152,7 +182,7 @@ "width": 230, "height": 110, "angle": 0, - "backgroundColor": "#a5d8ff", + "backgroundColor": "#203c58", "boundElements": [ { "id": "zTCDt0Ho5CMd77fbLDtcY", @@ -176,10 +206,10 @@ "type": 3 }, "seed": 593736800, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1182052768 }, @@ -191,7 +221,7 @@ "width": 360, "height": 150, "angle": 0, - "backgroundColor": "#eebefa", + "backgroundColor": "#483052", "boundElements": [ { "id": "h0XuaJW4ajZqoxHdONdoD", @@ -231,10 +261,10 @@ "type": 3 }, "seed": 2099790240, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 978040224 }, @@ -246,7 +276,7 @@ "width": 360, "height": 130, "angle": 0, - "backgroundColor": "#99e9f2", + "backgroundColor": "#20444b", "boundElements": [ { "id": "P17GHAQ_16UkG0R1YBHlt", @@ -274,10 +304,10 @@ "type": 3 }, "seed": 2041456736, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1173600672 }, @@ -289,7 +319,7 @@ "width": 390, "height": 130, "angle": 0, - "backgroundColor": "#99e9f2", + "backgroundColor": "#20444b", "boundElements": [ { "id": "CdM3RU_4G0JG3Y-zgJ-P0", @@ -317,10 +347,10 @@ "type": 3 }, "seed": 1575947680, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1246351776 }, @@ -332,7 +362,7 @@ "width": 310, "height": 110, "angle": 0, - "backgroundColor": "#a5d8ff", + "backgroundColor": "#203c58", "boundElements": [ { "id": "HfjV3O53SF5b4mn0PzSLL", @@ -356,10 +386,10 @@ "type": 3 }, "seed": 109714528, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 775872928 }, @@ -371,7 +401,7 @@ "width": 230, "height": 110, "angle": 0, - "backgroundColor": "#a5d8ff", + "backgroundColor": "#203c58", "boundElements": [ { "id": "2bw8zvN5KEkAETsZqCkd_", @@ -395,10 +425,10 @@ "type": 3 }, "seed": 335305120, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1577796000 }, @@ -410,7 +440,7 @@ "width": 360, "height": 130, "angle": 0, - "backgroundColor": "#eebefa", + "backgroundColor": "#483052", "boundElements": [ { "id": "do--wYvo5OjlMZ3pxMDCE", @@ -438,10 +468,10 @@ "type": 3 }, "seed": 2076676192, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 2051220896 }, @@ -453,7 +483,7 @@ "width": 360, "height": 44, "angle": 0, - "backgroundColor": "#99e9f2", + "backgroundColor": "#20444b", "boundElements": null, "fillStyle": "solid", "frameId": null, @@ -468,10 +498,10 @@ "type": 3 }, "seed": 871244, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558575, + "updated": 1788641941546, "version": 1, "versionNonce": 159532448 }, @@ -483,7 +513,7 @@ "width": 360, "height": 150, "angle": 0, - "backgroundColor": "#99e9f2", + "backgroundColor": "#20444b", "boundElements": [ { "id": "cYlcmF5py2A-mzFdQk-18", @@ -511,10 +541,10 @@ "type": 3 }, "seed": 847259040, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1632995744 }, @@ -526,7 +556,7 @@ "width": 360, "height": 44, "angle": 0, - "backgroundColor": "#99e9f2", + "backgroundColor": "#20444b", "boundElements": null, "fillStyle": "solid", "frameId": null, @@ -541,10 +571,10 @@ "type": 3 }, "seed": 521123, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558575, + "updated": 1788641941546, "version": 1, "versionNonce": 2061919328 }, @@ -556,7 +586,7 @@ "width": 390, "height": 130, "angle": 0, - "backgroundColor": "#eebefa", + "backgroundColor": "#483052", "boundElements": [ { "id": "aHBFXmjOoPlJVHt4Uvexd", @@ -584,10 +614,10 @@ "type": 3 }, "seed": 1362527328, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1397910944 }, @@ -599,7 +629,7 @@ "width": 360, "height": 150, "angle": 0, - "backgroundColor": "#e9ecef", + "backgroundColor": "#2d333e", "boundElements": [ { "id": "-e6FsKkYrbyeDV12iV_5D", @@ -623,10 +653,10 @@ "type": 3 }, "seed": 1722446240, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 811507104 }, @@ -638,7 +668,7 @@ "width": 360, "height": 120, "angle": 0, - "backgroundColor": "#e9ecef", + "backgroundColor": "#2d333e", "boundElements": [ { "id": "PiEDOChl6w9y7WHJH3KGm", @@ -662,10 +692,10 @@ "type": 3 }, "seed": 78051424, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 243532192 }, @@ -677,7 +707,7 @@ "width": 390, "height": 120, "angle": 0, - "backgroundColor": "#e9ecef", + "backgroundColor": "#2d333e", "boundElements": [ { "id": "WpMgRFk7_k6HgBMBRGP-v", @@ -701,10 +731,10 @@ "type": 3 }, "seed": 933969312, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1282663840 }, @@ -716,7 +746,7 @@ "width": 360, "height": 120, "angle": 0, - "backgroundColor": "#e9ecef", + "backgroundColor": "#2d333e", "boundElements": [ { "id": "-hfzjaFH0zeb5PqZUpyr1", @@ -748,10 +778,10 @@ "type": 3 }, "seed": 1508437088, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 1328570784 }, @@ -763,7 +793,7 @@ "width": 170, "height": 90, "angle": 0, - "backgroundColor": "#e9ecef", + "backgroundColor": "#2d333e", "boundElements": [ { "id": "be9cMuY3aHxBtXgqkIQIe", @@ -787,10 +817,10 @@ "type": 3 }, "seed": 1186105760, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 934215072 }, @@ -802,7 +832,7 @@ "width": 220, "height": 90, "angle": 0, - "backgroundColor": "#e9ecef", + "backgroundColor": "#2d333e", "boundElements": [ { "id": "zcJHNyOvrycetd_dUrNSk", @@ -826,10 +856,10 @@ "type": 3 }, "seed": 449601632, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941546, "version": 1, "versionNonce": 2045980064 }, @@ -838,7 +868,7 @@ "type": "arrow", "x": 278, "y": 355, - "width": 152.5, + "width": 151.5, "height": 0, "angle": 0, "backgroundColor": "transparent", @@ -871,7 +901,7 @@ 0 ], [ - 152.5, + 151.5, 0 ] ], @@ -885,10 +915,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 228636768 }, @@ -897,7 +927,7 @@ "type": "arrow", "x": 808, "y": 355, - "width": 122.5, + "width": 121.5, "height": 0, "angle": 0, "backgroundColor": "transparent", @@ -930,7 +960,7 @@ 0 ], [ - 122.5, + 121.5, 0 ] ], @@ -944,10 +974,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 1702040672 }, @@ -957,7 +987,7 @@ "x": 620, "y": 542, "width": 0, - "height": 102.5, + "height": 101.5, "angle": 0, "backgroundColor": "transparent", "boundElements": [ @@ -990,7 +1020,7 @@ ], [ 0, - -102.5 + -101.5 ] ], "roughness": 2, @@ -1003,10 +1033,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 1536356448 }, @@ -1015,8 +1045,8 @@ "type": "arrow", "x": 976.6992411264127, "y": 546.2202117378707, - "width": 208.2446360989793, - "height": 110.94042347574145, + "width": 207.2446360989793, + "height": 109.94042347574145, "angle": 0, "backgroundColor": "transparent", "boundElements": [ @@ -1048,8 +1078,8 @@ -0.5 ], [ - -208.2446360989793, - -110.94042347574145 + -207.2446360989793, + -109.94042347574145 ] ], "roughness": 2, @@ -1062,10 +1092,10 @@ "focus": 1.1061826067146283e-15, "gap": 3.779788262129273 }, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 1626360928 }, @@ -1074,8 +1104,8 @@ "type": "arrow", "x": 277.99815071657264, "y": 857.6451215207866, - "width": 152.50369856685472, - "height": 1.8119074960612807, + "width": 151.50369856685472, + "height": 0.8119074960612807, "angle": 0, "backgroundColor": "transparent", "boundElements": [ @@ -1107,8 +1137,8 @@ 0.5 ], [ - 152.50369856685472, - 1.8119074960612807 + 151.50369856685472, + 0.8119074960612807 ] ], "roughness": 2, @@ -1121,10 +1151,10 @@ "focus": 3.097434754220774e-15, "gap": 7.998150716572638 }, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 1283139680 }, @@ -1175,7 +1205,7 @@ ], [ 960, - 11 + 12 ] ], "roughness": 2, @@ -1188,10 +1218,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 455312480 }, @@ -1200,7 +1230,7 @@ "type": "arrow", "x": 1472, "y": 865, - "width": 162.5, + "width": 161.5, "height": 0, "angle": 0, "backgroundColor": "transparent", @@ -1233,7 +1263,7 @@ 0 ], [ - -162.5, + -161.5, 0 ] ], @@ -1247,10 +1277,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 802775136 }, @@ -1259,8 +1289,8 @@ "type": "arrow", "x": 971.7891081475475, "y": 796.3345918286328, - "width": 217.078216295095, - "height": 111.16918365726565, + "width": 216.078216295095, + "height": 110.16918365726565, "angle": 0, "backgroundColor": "transparent", "boundElements": [ @@ -1292,8 +1322,8 @@ -0.5 ], [ - -217.078216295095, - -111.16918365726565 + -216.078216295095, + -110.16918365726565 ] ], "roughness": 2, @@ -1306,10 +1336,10 @@ "focus": -1.236749752070912e-15, "gap": 3.665408171367176 }, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 327990368 }, @@ -1318,7 +1348,7 @@ "type": "arrow", "x": 1308, "y": 615, - "width": 162.5, + "width": 161.5, "height": 0, "angle": 0, "backgroundColor": "transparent", @@ -1351,7 +1381,7 @@ 0 ], [ - 162.5, + 161.5, 0 ] ], @@ -1365,10 +1395,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 892180576 }, @@ -1378,7 +1408,7 @@ "x": 432, "y": 400, "width": 220, - "height": 701.5, + "height": 700.5, "angle": 0, "backgroundColor": "transparent", "boundElements": [ @@ -1423,7 +1453,7 @@ ], [ 188, - 701 + 700 ] ], "roughness": 2, @@ -1436,10 +1466,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 699135072 }, @@ -1448,7 +1478,7 @@ "type": "arrow", "x": 1472, "y": 1170, - "width": 162.5, + "width": 161.5, "height": 0, "angle": 0, "backgroundColor": "transparent", @@ -1481,7 +1511,7 @@ 0 ], [ - -162.5, + -161.5, 0 ] ], @@ -1495,10 +1525,10 @@ "focus": 0, "gap": 8 }, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 1811402848 }, @@ -1507,8 +1537,8 @@ "type": "arrow", "x": 1587.111776296323, "y": 1342.630003508709, - "width": 42.94311407402097, - "height": 103.76000701741805, + "width": 41.94311407402097, + "height": 102.76000701741805, "angle": 0, "backgroundColor": "transparent", "boundElements": [ @@ -1540,8 +1570,8 @@ -0.5 ], [ - 42.94311407402097, - -103.76000701741805 + 41.94311407402097, + -102.76000701741805 ] ], "roughness": 2, @@ -1554,10 +1584,10 @@ "focus": 0, "gap": 7.369996491290976 }, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 486616160 }, @@ -1566,8 +1596,8 @@ "type": "arrow", "x": 1707.3028569575467, "y": 1236.51964259655, - "width": 74.56095275157327, - "height": 105.46071480689989, + "width": 73.56095275157327, + "height": 104.46071480689989, "angle": 0, "backgroundColor": "transparent", "boundElements": [ @@ -1599,8 +1629,8 @@ 0.5 ], [ - 74.56095275157327, - 105.46071480689989 + 73.56095275157327, + 104.46071480689989 ] ], "roughness": 2, @@ -1613,10 +1643,10 @@ "focus": 0, "gap": 6.519642596550057 }, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "dashed", "strokeWidth": 2, - "updated": 1788641558574, + "updated": 1788641941547, "version": 1, "versionNonce": 1136134240 }, @@ -1625,7 +1655,7 @@ "type": "text", "x": 40, "y": 940, - "width": 94.26667022705078, + "width": 93, "height": 20.7, "angle": 0, "autoResize": true, @@ -1633,7 +1663,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 18, "frameId": null, "groupIds": [], @@ -1647,12 +1677,12 @@ "roughness": 0, "roundness": null, "seed": 1257147488, - "strokeColor": "#495057", + "strokeColor": "#b8c0cc", "strokeStyle": "solid", "strokeWidth": 2, "text": "/v1/bids/{id}", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 1353824, "verticalAlign": "top" @@ -1662,7 +1692,7 @@ "type": "text", "x": 410, "y": 1260, - "width": 519, + "width": 579, "height": 20.7, "angle": 0, "autoResize": true, @@ -1670,7 +1700,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 18, "frameId": null, "groupIds": [], @@ -1684,12 +1714,12 @@ "roughness": 0, "roundness": null, "seed": 173468064, - "strokeColor": "#495057", + "strokeColor": "#b8c0cc", "strokeStyle": "solid", "strokeWidth": 2, "text": "Each replica owns its caches. Redis distributes changes to every replica.", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 925928864, "verticalAlign": "top" @@ -1699,7 +1729,7 @@ "type": "text", "x": 410, "y": 1050, - "width": 134.5, + "width": 142.60000610351562, "height": 25.299999999999997, "angle": 0, "autoResize": true, @@ -1707,7 +1737,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 22, "frameId": null, "groupIds": [], @@ -1721,12 +1751,12 @@ "roughness": 0, "roundness": null, "seed": 438173792, - "strokeColor": "#495057", + "strokeColor": "#b8c0cc", "strokeStyle": "solid", "strokeWidth": 2, "text": "OPERATIONS", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 2082511968, "verticalAlign": "top" @@ -1736,7 +1766,7 @@ "type": "text", "x": 40, "y": 1340, - "width": 325.5, + "width": 357, "height": 41.4, "angle": 0, "autoResize": true, @@ -1744,7 +1774,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 18, "frameId": null, "groupIds": [], @@ -1758,12 +1788,12 @@ "roughness": 0, "roundness": null, "seed": 520664480, - "strokeColor": "#495057", + "strokeColor": "#b8c0cc", "strokeStyle": "solid", "strokeWidth": 2, "text": "Solid arrows: request / local data flow\nDashed arrows: background work / telemetry", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 1225644448, "verticalAlign": "top" @@ -1773,7 +1803,7 @@ "type": "text", "x": 40, "y": 1465, - "width": 978, + "width": 1082, "height": 20.7, "angle": 0, "autoResize": true, @@ -1781,7 +1811,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 18, "frameId": null, "groupIds": [], @@ -1795,12 +1825,12 @@ "roughness": 0, "roundness": null, "seed": 993981536, - "strokeColor": "#495057", + "strokeColor": "#b8c0cc", "strokeStyle": "solid", "strokeWidth": 2, "text": "Deployment: local Compose runs Redis; monitoring has a separate Compose file. A load balancer can front multiple adserver instances.", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 2056130656, "verticalAlign": "top" @@ -1810,7 +1840,7 @@ "type": "text", "x": 40, "y": 1500, - "width": 771.2999877929688, + "width": 847, "height": 20.7, "angle": 0, "autoResize": true, @@ -1818,7 +1848,7 @@ "boundElements": null, "containerId": null, "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 18, "frameId": null, "groupIds": [], @@ -1832,12 +1862,12 @@ "roughness": 0, "roundness": null, "seed": 1403060640, - "strokeColor": "#495057", + "strokeColor": "#b8c0cc", "strokeStyle": "solid", "strokeWidth": 2, "text": "Outside this service: budgets, pacing, frequency caps, attribution, billing, fraud checks and creative review.", "textAlign": "left", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 1231136160, "verticalAlign": "top" @@ -1845,9 +1875,9 @@ { "id": "zTCDt0Ho5CMd77fbLDtcY", "type": "text", - "x": 98.06666564941406, + "x": 95.5, "y": 342.5, - "width": 113.86666870117188, + "width": 119, "height": 25, "angle": 0, "autoResize": true, @@ -1855,7 +1885,7 @@ "boundElements": null, "containerId": "client", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -1869,12 +1899,12 @@ "roughness": 0, "roundness": null, "seed": 858588256, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "Auction client", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 878181472, "verticalAlign": "middle" @@ -1882,9 +1912,9 @@ { "id": "h0XuaJW4ajZqoxHdONdoD", "type": "text", - "x": 500.8499984741211, + "x": 495.4833297729492, "y": 317.5, - "width": 238.3000030517578, + "width": 249.03334045410156, "height": 75, "angle": 0, "autoResize": true, @@ -1892,7 +1922,7 @@ "boundElements": null, "containerId": "auction", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -1902,16 +1932,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Auction handler + ranker\nTargeting → priority → CPM\nFirst / second price clearing", + "originalText": "Auction handler + ranker\nTargeting \u2192 priority \u2192 CPM\nFirst / second price clearing", "roughness": 0, "roundness": null, "seed": 1674410080, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Auction handler + ranker\nTargeting → priority → CPM\nFirst / second price clearing", + "text": "Auction handler + ranker\nTargeting \u2192 priority \u2192 CPM\nFirst / second price clearing", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 1518107040, "verticalAlign": "middle" @@ -1919,9 +1949,9 @@ { "id": "P17GHAQ_16UkG0R1YBHlt", "type": "text", - "x": 505.0500030517578, + "x": 492.08333587646484, "y": 590, - "width": 229.89999389648438, + "width": 255.8333282470703, "height": 50, "angle": 0, "autoResize": true, @@ -1929,7 +1959,7 @@ "boundElements": null, "containerId": "snapshot", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -1943,12 +1973,12 @@ "roughness": 0, "roundness": null, "seed": 272591968, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, "text": "BidCache\nAtomic placement snapshots", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 1960407136, "verticalAlign": "middle" @@ -1956,9 +1986,9 @@ { "id": "CdM3RU_4G0JG3Y-zgJ-P0", "type": "text", - "x": 993.3333358764648, + "x": 981.8000030517578, "y": 590, - "width": 223.3333282470703, + "width": 246.39999389648438, "height": 50, "angle": 0, "autoResize": true, @@ -1966,7 +1996,7 @@ "boundElements": null, "containerId": "dspcache", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -1976,16 +2006,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Bidder engine + local cache\nTTL • background refresh", + "originalText": "Bidder engine + local cache\nTTL \u2022 background refresh", "roughness": 0, "roundness": null, "seed": 1112727648, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Bidder engine + local cache\nTTL • background refresh", + "text": "Bidder engine + local cache\nTTL \u2022 background refresh", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 1945912736, "verticalAlign": "middle" @@ -1993,9 +2023,9 @@ { "id": "HfjV3O53SF5b4mn0PzSLL", "type": "text", - "x": 1026.1166687011719, + "x": 1021.0166702270508, "y": 330, - "width": 137.76666259765625, + "width": 147.96665954589844, "height": 50, "angle": 0, "autoResize": true, @@ -2003,7 +2033,7 @@ "boundElements": null, "containerId": "result", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2017,12 +2047,12 @@ "roughness": 0, "roundness": null, "seed": 1238881376, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "JSON response\nwinner or no_bid", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 218915936, "verticalAlign": "middle" @@ -2030,9 +2060,9 @@ { "id": "2bw8zvN5KEkAETsZqCkd_", "type": "text", - "x": 102.5, + "x": 100.51666641235352, "y": 842.5, - "width": 105, + "width": 108.96666717529297, "height": 25, "angle": 0, "autoResize": true, @@ -2040,7 +2070,7 @@ "boundElements": null, "containerId": "admin", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2054,12 +2084,12 @@ "roughness": 0, "roundness": null, "seed": 2090748000, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "Admin client", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941548, "version": 1, "versionNonce": 1671598496, "verticalAlign": "middle" @@ -2067,9 +2097,9 @@ { "id": "do--wYvo5OjlMZ3pxMDCE", "type": "text", - "x": 521.9499969482422, + "x": 515.466667175293, "y": 827.5, - "width": 196.10000610351562, + "width": 209.06666564941406, "height": 75, "angle": 0, "autoResize": true, @@ -2077,7 +2107,7 @@ "boundElements": null, "containerId": "adminapi", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2087,16 +2117,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Bid mutation API\nValidate • admin token\nRevision conflict → 409", + "originalText": "Bid mutation API\nValidate \u2022 admin token\nRevision conflict \u2192 409", "roughness": 0, "roundness": null, "seed": 1987460192, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Bid mutation API\nValidate • admin token\nRevision conflict → 409", + "text": "Bid mutation API\nValidate \u2022 admin token\nRevision conflict \u2192 409", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 180410464, "verticalAlign": "middle" @@ -2104,9 +2134,9 @@ { "id": "cYlcmF5py2A-mzFdQk-18", "type": "text", - "x": 1535.3833312988281, + "x": 1521.8000030517578, "y": 827.5, - "width": 249.23333740234375, + "width": 276.3999938964844, "height": 75, "angle": 0, "autoResize": true, @@ -2114,7 +2144,7 @@ "boundElements": null, "containerId": "redis", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2124,16 +2154,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Redis • shared bid state\nActive bids + revisions\nTombstones + placement index", + "originalText": "Redis \u2022 shared bid state\nActive bids + revisions\nTombstones + placement index", "roughness": 0, "roundness": null, "seed": 1496297568, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Redis • shared bid state\nActive bids + revisions\nTombstones + placement index", + "text": "Redis \u2022 shared bid state\nActive bids + revisions\nTombstones + placement index", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 547315104, "verticalAlign": "middle" @@ -2141,9 +2171,9 @@ { "id": "aHBFXmjOoPlJVHt4Uvexd", "type": "text", - "x": 978.1166687011719, + "x": 967.2833404541016, "y": 827.5, - "width": 253.76666259765625, + "width": 275.4333190917969, "height": 75, "angle": 0, "autoResize": true, @@ -2151,7 +2181,7 @@ "boundElements": null, "containerId": "refresh", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2161,16 +2191,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Snapshot refresh workers\nWarmup • Pub/Sub invalidation\nPeriodic reconciliation", + "originalText": "Snapshot refresh workers\nWarmup \u2022 Pub/Sub invalidation\nPeriodic reconciliation", "roughness": 0, "roundness": null, "seed": 211461216, - "strokeColor": "#9c36b5", + "strokeColor": "#d5a1f0", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Snapshot refresh workers\nWarmup • Pub/Sub invalidation\nPeriodic reconciliation", + "text": "Snapshot refresh workers\nWarmup \u2022 Pub/Sub invalidation\nPeriodic reconciliation", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 1103547488, "verticalAlign": "middle" @@ -2178,9 +2208,9 @@ { "id": "-e6FsKkYrbyeDV12iV_5D", "type": "text", - "x": 1528.2166595458984, + "x": 1516.3666687011719, "y": 577.5, - "width": 263.5666809082031, + "width": 287.26666259765625, "height": 75, "angle": 0, "autoResize": true, @@ -2188,7 +2218,7 @@ "boundElements": null, "containerId": "dsp", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2198,16 +2228,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "External DSP endpoints\nHTTP deadlines • circuit breaker\nBounded concurrency", + "originalText": "External DSP endpoints\nHTTP deadlines \u2022 circuit breaker\nBounded concurrency", "roughness": 0, "roundness": null, "seed": 2122782816, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "text": "External DSP endpoints\nHTTP deadlines • circuit breaker\nBounded concurrency", + "text": "External DSP endpoints\nHTTP deadlines \u2022 circuit breaker\nBounded concurrency", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 1008904608, "verticalAlign": "middle" @@ -2215,9 +2245,9 @@ { "id": "PiEDOChl6w9y7WHJH3KGm", "type": "text", - "x": 491.6999969482422, + "x": 477.03334045410156, "y": 1132.5, - "width": 256.6000061035156, + "width": 285.9333190917969, "height": 75, "angle": 0, "autoResize": true, @@ -2225,7 +2255,7 @@ "boundElements": null, "containerId": "log", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2235,16 +2265,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Decision logger (optional)\nBounded queue → JSON stdout\nOverflow drops + metric", + "originalText": "Decision logger (optional)\nBounded queue \u2192 JSON stdout\nOverflow drops + metric", "roughness": 0, "roundness": null, "seed": 1657080928, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Decision logger (optional)\nBounded queue → JSON stdout\nOverflow drops + metric", + "text": "Decision logger (optional)\nBounded queue \u2192 JSON stdout\nOverflow drops + metric", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 200163424, "verticalAlign": "middle" @@ -2252,9 +2282,9 @@ { "id": "WpMgRFk7_k6HgBMBRGP-v", "type": "text", - "x": 994.716667175293, + "x": 983.9833297729492, "y": 1132.5, - "width": 220.56666564941406, + "width": 242.03334045410156, "height": 75, "angle": 0, "autoResize": true, @@ -2262,7 +2292,7 @@ "boundElements": null, "containerId": "metrics", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2272,16 +2302,16 @@ "link": null, "locked": false, "opacity": 100, - "originalText": "Runtime endpoints\n/metrics • /healthz • /readyz\nOptional private pprof", + "originalText": "Runtime endpoints\n/metrics \u2022 /healthz \u2022 /readyz\nOptional private pprof", "roughness": 0, "roundness": null, "seed": 1931772000, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, - "text": "Runtime endpoints\n/metrics • /healthz • /readyz\nOptional private pprof", + "text": "Runtime endpoints\n/metrics \u2022 /healthz \u2022 /readyz\nOptional private pprof", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 559707552, "verticalAlign": "middle" @@ -2289,9 +2319,9 @@ { "id": "-hfzjaFH0zeb5PqZUpyr1", "type": "text", - "x": 1553.1166687011719, + "x": 1539.3333358764648, "y": 1145, - "width": 213.76666259765625, + "width": 241.3333282470703, "height": 50, "angle": 0, "autoResize": true, @@ -2299,7 +2329,7 @@ "boundElements": null, "containerId": "prom", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2313,12 +2343,12 @@ "roughness": 0, "roundness": null, "seed": 796226656, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, "text": "Prometheus (optional)\nScrapes /metrics every 15s", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 151467104, "verticalAlign": "middle" @@ -2326,9 +2356,9 @@ { "id": "be9cMuY3aHxBtXgqkIQIe", "type": "text", - "x": 1532.816665649414, + "x": 1528.8333320617676, "y": 1382.5, - "width": 64.36666870117188, + "width": 72.33333587646484, "height": 25, "angle": 0, "autoResize": true, @@ -2336,7 +2366,7 @@ "boundElements": null, "containerId": "graf", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2350,12 +2380,12 @@ "roughness": 0, "roundness": null, "seed": 495446112, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, "text": "Grafana", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 1434239392, "verticalAlign": "middle" @@ -2363,9 +2393,9 @@ { "id": "zcJHNyOvrycetd_dUrNSk", "type": "text", - "x": 1765.033332824707, + "x": 1759.933334350586, "y": 1382.5, - "width": 109.93333435058594, + "width": 120.13333129882812, "height": 25, "angle": 0, "autoResize": true, @@ -2373,7 +2403,7 @@ "boundElements": null, "containerId": "alert", "fillStyle": "solid", - "fontFamily": 1, + "fontFamily": 2, "fontSize": 20, "frameId": null, "groupIds": [], @@ -2387,12 +2417,12 @@ "roughness": 0, "roundness": null, "seed": 153869408, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, "text": "Alertmanager", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 1591847008, "verticalAlign": "middle" @@ -2400,18 +2430,18 @@ { "id": "Mz3qTzgPoITbm6zq_qquc", "type": "text", - "x": 156.91666793823242, - "y": 324.375, - "width": 107.93333435058594, - "height": 18.75, + "x": 31.583332061767578, + "y": 304.375, + "width": 125.33333587646484, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "request", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "ar", @@ -2424,12 +2454,12 @@ "roughness": 0, "roundness": null, "seed": 1144082528, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "POST /v1/auction", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 934514080, "verticalAlign": "middle" @@ -2437,18 +2467,18 @@ { "id": "r4Mk4IeeVyrkrUULj0GSB", "type": "text", - "x": 777.6166667938232, - "y": 323.125, - "width": 50, - "height": 18.75, + "x": 718.8833332061768, + "y": 303.125, + "width": 58.733333587646484, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "response", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "as", @@ -2461,12 +2491,12 @@ "roughness": 0, "roundness": null, "seed": 497724512, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "decision", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 2035129440, "verticalAlign": "middle" @@ -2474,18 +2504,18 @@ { "id": "vcj35AGH_Gr3Q7A1Tr8Ns", "type": "text", - "x": 512.9000015258789, - "y": 458.125, - "width": 57.93333435058594, - "height": 18.75, + "x": 446.1666717529297, + "y": 438.125, + "width": 66.73332977294922, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "read-snapshot", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "at", @@ -2498,12 +2528,12 @@ "roughness": 0, "roundness": null, "seed": 47286368, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "local bids", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 1093720480, "verticalAlign": "middle" @@ -2511,18 +2541,18 @@ { "id": "AobOUtir18oVt3o6WWo0P", "type": "text", - "x": 671.2935940669133, - "y": 458.125, - "width": 104.19999694824219, - "height": 18.75, + "x": 545.8935925410344, + "y": 438.125, + "width": 125.4000015258789, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "read-dsp", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "au", @@ -2535,12 +2565,12 @@ "roughness": 0, "roundness": null, "seed": 1620436064, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "fresh cached bids", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941549, "version": 1, "versionNonce": 1243287648, "verticalAlign": "middle" @@ -2548,18 +2578,18 @@ { "id": "rxeL5pDQLOmEuqYknmqqg", "type": "text", - "x": 173.41666793823242, - "y": 827.4260752688172, - "width": 96.69999694824219, - "height": 18.75, + "x": 65.88333511352539, + "y": 807.4260752688172, + "width": 107.53333282470703, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "mutate", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "av", @@ -2572,12 +2602,12 @@ "roughness": 0, "roundness": null, "seed": 166183008, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "PUT / DELETE", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 1160029600, "verticalAlign": "middle" @@ -2585,18 +2615,18 @@ { "id": "pjR-talcnzreLa09_y0OO", "type": "text", - "x": 734.8333282470703, - "y": 950.625, - "width": 209.8000030517578, - "height": 18.75, + "x": 494.29998779296875, + "y": 930.625, + "width": 240.53334045410156, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "lua", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "aw", @@ -2609,12 +2639,12 @@ "roughness": 0, "roundness": null, "seed": 2008489056, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, "text": "Lua: atomic revision check + write", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 152700000, "verticalAlign": "middle" @@ -2622,18 +2652,18 @@ { "id": "8zKH6RNqHa23MZI7FWIfd", "type": "text", - "x": 1200.150001525879, - "y": 833.125, - "width": 101, - "height": 18.75, + "x": 1082.283332824707, + "y": 813.125, + "width": 117.86666870117188, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "invalidate", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "ax", @@ -2646,12 +2676,12 @@ "roughness": 0, "roundness": null, "seed": 150206560, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, "text": "invalidate + read", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 817820064, "verticalAlign": "middle" @@ -2659,18 +2689,18 @@ { "id": "b0btx38Q9oL1De3ffsAwy", "type": "text", - "x": 670.2333335876465, - "y": 708.125, - "width": 99.5999984741211, - "height": 18.75, + "x": 548.3666648864746, + "y": 688.125, + "width": 121.86666870117188, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "replace", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "ay", @@ -2683,12 +2713,12 @@ "roughness": 0, "roundness": null, "seed": 1116623968, - "strokeColor": "#0c8599", + "strokeColor": "#70d6df", "strokeStyle": "solid", "strokeWidth": 2, "text": "replace snapshot", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 1947891808, "verticalAlign": "middle" @@ -2696,18 +2726,18 @@ { "id": "ZJs-AZsGTr5wqjKCX3nMZ", "type": "text", - "x": 1209, - "y": 583.125, - "width": 75.43333435058594, - "height": 18.75, + "x": 1121, + "y": 563.125, + "width": 88, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "dsp-refresh", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "az", @@ -2720,12 +2750,12 @@ "roughness": 0, "roundness": null, "seed": 259403872, - "strokeColor": "#1971c2", + "strokeColor": "#80bdff", "strokeStyle": "solid", "strokeWidth": 2, "text": "async HTTP", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 1261419936, "verticalAlign": "middle" @@ -2733,18 +2763,18 @@ { "id": "cEzNumuoWmLXlNmEWauol", "type": "text", - "x": 333.8500003814697, - "y": 705.625, - "width": 50, - "height": 18.75, + "x": 271.5500011444092, + "y": 685.625, + "width": 62.29999923706055, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "logs", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "b00", @@ -2757,12 +2787,12 @@ "roughness": 0, "roundness": null, "seed": 10194016, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, "text": "enqueue", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 250375264, "verticalAlign": "middle" @@ -2770,18 +2800,18 @@ { "id": "Zp_OWRvpN-lxySPD0bsif", "type": "text", - "x": 1234.916660308838, - "y": 1138.125, - "width": 81.26667022705078, - "height": 18.75, + "x": 1141.61665725708, + "y": 1118.125, + "width": 93.30000305175781, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "scrape", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "b01", @@ -2794,12 +2824,12 @@ "roughness": 0, "roundness": null, "seed": 216950880, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, "text": "GET /metrics", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 1973881248, "verticalAlign": "middle" @@ -2807,18 +2837,18 @@ { "id": "KgS24NVyDHxwioB1Vgfl6", "type": "text", - "x": 1546.5833333333335, - "y": 1258.125, - "width": 34.16666793823242, - "height": 18.75, + "x": 1506.5500005086265, + "y": 1238.125, + "width": 40.03333282470703, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "query", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "b02", @@ -2831,12 +2861,12 @@ "roughness": 0, "roundness": null, "seed": 1365165152, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, "text": "query", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 1667227744, "verticalAlign": "middle" @@ -2844,18 +2874,18 @@ { "id": "WSU4p4xRjBMXu2mgwfOiq", "type": "text", - "x": 1680.7499993642173, - "y": 1258.125, - "width": 32.5, - "height": 18.75, + "x": 1641.6166642506919, + "y": 1238.125, + "width": 39.13333511352539, + "height": 20, "angle": 0, "autoResize": true, "backgroundColor": "transparent", "boundElements": null, "containerId": "alerts", "fillStyle": "solid", - "fontFamily": 1, - "fontSize": 15, + "fontFamily": 2, + "fontSize": 16, "frameId": null, "groupIds": [], "index": "b03", @@ -2868,19 +2898,19 @@ "roughness": 0, "roundness": null, "seed": 1356636256, - "strokeColor": "#868e96", + "strokeColor": "#bbc3cf", "strokeStyle": "solid", "strokeWidth": 2, "text": "alerts", "textAlign": "center", - "updated": 1788641558574, + "updated": 1788641941550, "version": 1, "versionNonce": 1800721824, "verticalAlign": "middle" } ], "appState": { - "viewBackgroundColor": "#ffffff", + "viewBackgroundColor": "#12151c", "gridSize": null } } diff --git a/docs/architecture.svg b/docs/architecture.svg index 721ca6f..62edf70 100644 --- a/docs/architecture.svg +++ b/docs/architecture.svg @@ -1,2 +1,2 @@ -Adserver • system architectureCurrent repository design | Warm auctions have no Redis or DSP network callsGO ADSERVER · per instanceAuction clientAuction handler + rankerTargeting → priority → CPMFirst / second price clearingBidCacheAtomic placement snapshotsBidder engine + local cacheTTL • background refreshJSON responsewinner or no_bidAdmin clientBid mutation APIValidate • admin tokenRevision conflict → 409Redis • shared bid stateActive bids + revisionsTombstones + placement indexSnapshot refresh workersWarmup • Pub/Sub invalidationPeriodic reconciliationExternal DSP endpointsHTTP deadlines • circuit breakerBounded concurrencyDecision logger (optional)Bounded queue → JSON stdoutOverflow drops + metricRuntime endpoints/metrics • /healthz • /readyzOptional private pprofPrometheus (optional)Scrapes /metrics every 15sGrafanaAlertmanagerPOST /v1/auctiondecisionlocal bidsfresh cached bidsPUT / DELETELua: atomic revision check + writeinvalidate + readreplace snapshotasync HTTPenqueueGET /metricsqueryalerts/v1/bids/{id}Each replica owns its caches. Redis distributes changes to every replica.OPERATIONSSolid arrows: request / local data flowDashed arrows: background work / telemetryDeployment: local Compose runs Redis; monitoring has a separate Compose file. A load balancer can front multiple adserver instances.Outside this service: budgets, pacing, frequency caps, attribution, billing, fraud checks and creative review. \ No newline at end of file +Adserver • system architectureCurrent repository design | Warm auctions have no Redis or DSP network callsGO ADSERVER · per instanceAuction clientAuction handler + rankerTargeting → priority → CPMFirst / second price clearingBidCacheAtomic placement snapshotsBidder engine + local cacheTTL • background refreshJSON responsewinner or no_bidAdmin clientBid mutation APIValidate • admin tokenRevision conflict → 409Redis • shared bid stateActive bids + revisionsTombstones + placement indexSnapshot refresh workersWarmup • Pub/Sub invalidationPeriodic reconciliationExternal DSP endpointsHTTP deadlines • circuit breakerBounded concurrencyDecision logger (optional)Bounded queue → JSON stdoutOverflow drops + metricRuntime endpoints/metrics • /healthz • /readyzOptional private pprofPrometheus (optional)Scrapes /metrics every 15sGrafanaAlertmanagerPOST /v1/auctiondecisionlocal bidsfresh cached bidsPUT / DELETELua: atomic revision check + writeinvalidate + readreplace snapshotasync HTTPenqueueGET /metricsqueryalerts/v1/bids/{id}Each replica owns its caches. Redis distributes changes to every replica.OPERATIONSSolid arrows: request / local data flowDashed arrows: background work / telemetryDeployment: local Compose runs Redis; monitoring has a separate Compose file. A load balancer can front multiple adserver instances.Outside this service: budgets, pacing, frequency caps, attribution, billing, fraud checks and creative review. \ No newline at end of file