site and webhooks packages stubbed

This commit is contained in:
2025-12-23 22:35:38 -07:00
commit cdbc08dea2
16 changed files with 527 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="331px" preserveAspectRatio="none" style="width:629px;height:331px;" version="1.1" viewBox="0 0 629 331" width="629px" zoomAndPan="magnify"><defs><filter height="300%" id="f1421eyxhylf5w" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--MD5=[e8f3788ad7b97e8de68b4194558bc2a1]
cluster db--><path d="M362.5,34.5 C362.5,24.5 490,24.5 490,24.5 C490,24.5 617.5,24.5 617.5,34.5 L617.5,309 C617.5,319 490,319 490,319 C490,319 362.5,319 362.5,309 L362.5,34.5 " fill="#FFFFFF" filter="url(#f1421eyxhylf5w)" style="stroke: #000000; stroke-width: 1.5;"/><path d="M362.5,34.5 C362.5,44.5 490,44.5 490,44.5 C490,44.5 617.5,44.5 617.5,34.5 " fill="none" style="stroke: #000000; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="93" x="443.5" y="61.4659">db (postgres)</text><!--MD5=[e2a75efa8a0f57c2afae8bf75386f79c]
cluster views--><rect fill="#FFFFFF" filter="url(#f1421eyxhylf5w)" height="93" style="stroke: #000000; stroke-width: 1.5;" width="207" x="386.5" y="85.5"/><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacingAndGlyphs" textLength="39" x="470.5" y="102.4659">views</text><!--MD5=[358ab9ee084784a6364725e117c35e22]
entity eventtable--><rect fill="#FEFECE" filter="url(#f1421eyxhylf5w)" height="39.0679" style="stroke: #000000; stroke-width: 1.5;" width="93" x="381" y="258"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="73" x="391" y="282.9659">raw events</text><!--MD5=[d6856b040a1663a798ad7a4fdedcc4e9]
entity trigger--><ellipse cx="561.5" cy="268" fill="#FEFECE" filter="url(#f1421eyxhylf5w)" rx="12" ry="12" style="stroke: #A80036; stroke-width: 2.0;"/><polygon fill="#A80036" points="557.5,256,563.5,251,561.5,256,563.5,261,557.5,256" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="47" x="538" y="298.9659">trigger</text><!--MD5=[9a3c926baf05f907617b421b7de43814]
entity virtualViews--><rect fill="#FEFECE" filter="url(#f1421eyxhylf5w)" height="39.0679" style="stroke: #000000; stroke-width: 1.5;" width="63" x="403" y="123.5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="43" x="413" y="148.4659">virtual</text><!--MD5=[76cb7dc50c7f0087f20694a01d35754d]
entity materialViews--><rect fill="#FEFECE" filter="url(#f1421eyxhylf5w)" height="39.0679" style="stroke: #000000; stroke-width: 1.5;" width="76" x="501.5" y="123.5"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="56" x="511.5" y="148.4659">material</text><!--MD5=[9205152578b4c4885530cd24a645560f]
entity platforms--><path d="M15.0004,252.3962 C17.9147,246.3284 23.6394,244.9637 28.0382,250.7656 C31.5671,246.5538 36.1781,246.049 38.9921,251.5702 C41.0232,244.8973 46.9531,244.3438 50.8428,249.7463 C53.4113,243.095 58.809,242.8404 62.5198,248.6783 C66.1639,241.9808 71.3092,243.5149 74.9427,248.6894 C77.4151,242.4054 81.6703,241.8911 86.3847,246.2876 C90.1319,240.7147 93.8086,240.9119 97.1528,246.6706 C100.2614,242.0476 105.8153,241.0407 108.6255,246.9942 C112.5651,240.4518 118.4868,240.0524 122.2963,247.1247 C125.976,243.1387 129.934,243.257 132.0269,248.7532 C136.347,242.1507 142.1109,243.7875 145.2468,249.977 C149.0378,244.9482 154.2668,245.8931 156.4795,251.6247 C159.9318,247.1424 165.3293,247.8174 167.8447,252.7549 C170.8599,246.6291 176.8692,246.2529 180.9339,251.5526 C188.0624,253.3067 190.8687,259.666 184.8734,265.2066 C192.4385,266.7439 195.0805,273.0861 189.3634,278.9597 C193.5784,285.0838 190.7271,290.5938 183.529,291.3388 C188.7123,296.6125 187.3826,302.5082 180.1146,304.5682 C176.8141,311.1678 172.1888,311.1065 167.6075,305.9283 C164.3979,310.6024 161.0348,311.6753 157.2106,306.5826 C153.9444,312.8946 148.5571,312.928 144.9224,306.9511 C140.2535,312.7928 135.6856,311.312 132.4473,305.4288 C129.7245,311.1787 125.4397,312.2033 121.1054,307.1152 C117.8045,312.3325 112.4506,313.2367 108.8567,307.441 C106.0404,312.1853 101.1046,311.8268 98.4812,307.2269 C94.9023,312.8611 88.1829,313.9539 84.8658,306.945 C81.853,311.5192 76.508,311.8046 73.685,306.7251 C70.4695,312.0285 66.0073,311.8158 62.3445,307.2386 C57.6569,311.8644 53.0502,311.0897 50.4689,304.9212 C47.1294,310.5761 42.5034,310.3521 39.114,304.9726 C34.666,311.1463 30.733,310.0703 26.4257,304.8163 C22.6843,311.0862 19.1749,310.1979 15.0194,305.237 C7.085,302.3704 4.7998,297.6757 10.7615,290.7304 C4.9824,289.3668 3.4157,283.8261 7.1171,279.4104 C1.9534,273.9856 2.9473,266.6986 11.414,265.4774 C7.0485,259.4079 7.355,255.1728 15.0004,252.3962 " fill="#FEFECE" style="stroke: #000000; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="151" x="21" y="273.4659">ecommerce platforms:</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="63" x="21" y="292.5339">A, B, C, ...</text><!--MD5=[b1a7855e6585e68a7a22c3cffb63dc0f]
entity webhook--><path d="M267,256 L267,280 M267,268 L284,268 " fill="none" filter="url(#f1421eyxhylf5w)" style="stroke: #A80036; stroke-width: 2.0;"/><ellipse cx="296" cy="268" fill="#FEFECE" filter="url(#f1421eyxhylf5w)" rx="12" ry="12" style="stroke: #A80036; stroke-width: 2.0;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="60" x="257.5" y="298.9659">webhook</text><!--MD5=[23cab040c855f106073a9554ba0a8f73]
link platforms to webhook--><path d="M187.25,277.5 C210.3,277.5 233.72,277.5 252.12,277.5 " fill="none" id="platforms-&gt;webhook" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="257.17,277.5,248.17,273.5,252.17,277.5,248.17,281.5,257.17,277.5" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="34" x="205.25" y="270.397">event</text><!--MD5=[83035e2f9789a9fa293c560fea234ed5]
link webhook to eventtable--><path d="M317.53,277.5 C334.5,277.5 356.17,277.5 375.78,277.5 " fill="none" id="webhook-&gt;eventtable" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="380.99,277.5,371.99,273.5,375.99,277.5,371.99,281.5,380.99,277.5" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="27" x="335.75" y="270.397">save</text><!--MD5=[f0230ff149e87d499b070d64117e03f8]
link eventtable to trigger--><path d="M474.37,277.5 C493.79,277.5 515.7,277.5 532.7,277.5 " fill="none" id="eventtable-&gt;trigger" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="537.8,277.5,528.8,273.5,532.8,277.5,528.8,281.5,537.8,277.5" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="27" x="492.5" y="270.397">read</text><!--MD5=[860cd78a7786da8322932b9ab26eba23]
reverse link materialViews to trigger--><path d="M543.46,167.84 C547.38,191.48 553.37,227.55 557.36,251.56 " fill="none" id="materialViews&lt;-trigger" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="542.61,162.7,540.1306,172.2317,543.425,167.6331,548.0236,170.9276,542.61,162.7" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="551.5" y="209.397">update</text><!--MD5=[2036aefff09e2d8452addd32e58e2b9b]
reverse link virtualViews to eventtable--><path d="M433.23,167.98 C431.87,193.81 429.73,234.36 428.48,257.89 " fill="none" id="virtualViews&lt;-eventtable" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="433.51,162.7,429.028,171.4699,433.239,167.6926,437.0163,171.9036,433.51,162.7" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[e952d7f61e81b262dbf5ac2ebc7fe5ce]
reverse link virtualViews to materialViews--><path d="M471.32,143 C481.33,143 491.34,143 501.36,143 " fill="none" id="virtualViews&lt;-materialViews" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="466.08,143,475.08,147,471.08,143,475.08,139,466.08,143" style="stroke: #A80036; stroke-width: 1.0;"/><!--MD5=[7e09ac5c3e227e26930fb5d40726a924]
@startuml
cloud "ecommerce platforms:\n A, B, C, ..." as platforms
boundary webhook
database db as "db (postgres)" {
rectangle "raw events" as eventtable
control trigger
rectangle views {
rectangle virtual as virtualViews
rectangle material as materialViews
}
}
platforms -> webhook : event
webhook -> eventtable : save
eventtable -> trigger : read
trigger -up-> materialViews : update
eventtable -up-> virtualViews
materialViews -left-> virtualViews
@enduml
PlantUML version 1.2020.02(Sun Mar 01 03:22:07 MST 2020)
(GPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 21.0.9+10-Ubuntu-124.04
Operating System: Linux
Default Encoding: UTF-8
Language: en
Country: US
--></g></svg>

After

Width:  |  Height:  |  Size: 9.5 KiB