mirror of https://github.com/pulumi/pulumi.git
40 lines
16 KiB
XML
40 lines
16 KiB
XML
<?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="644px" preserveAspectRatio="none" style="width:1393px;height:644px;background:#FFFFFF;" version="1.1" viewBox="0 0 1393 644" width="1393px" zoomAndPan="magnify"><defs><filter height="300%" id="fqymxxka9icp1" 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><rect fill="#DDDDDD" height="632.2109" style="stroke:#A80036;stroke-width:1.0;" width="752" x="352.5" y="6"/><text fill="#000000" font-family="sans-serif" font-size="13" font-weight="bold" lengthAdjust="spacing" textLength="47" x="705" y="18.5684">Engine</text><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="318.416" style="stroke:#A80036;stroke-width:1.0;" width="10" x="421" y="92.1094"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="159.208" style="stroke:#A80036;stroke-width:1.0;" width="10" x="773" y="121.4199"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="100.5869" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1039" y="280.6279"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="67.6211" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1039" y="523.1016"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="150.7305"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="209.3516"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="322.5938"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="552.4121"/><line style="stroke:#A80036;stroke-width:1.0;" x1="63" x2="63" y1="60.7988" y2="418.5254"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="63" x2="63" y1="418.5254" y2="459.4805"/><line style="stroke:#A80036;stroke-width:1.0;" x1="63" x2="63" y1="459.4805" y2="599.7227"/><line style="stroke:#A80036;stroke-width:1.0;" x1="425.5" x2="425.5" y1="60.7988" y2="418.5254"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="425.5" x2="425.5" y1="418.5254" y2="459.4805"/><line style="stroke:#A80036;stroke-width:1.0;" x1="425.5" x2="425.5" y1="459.4805" y2="599.7227"/><line style="stroke:#A80036;stroke-width:1.0;" x1="777.5" x2="777.5" y1="60.7988" y2="418.5254"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="777.5" x2="777.5" y1="418.5254" y2="459.4805"/><line style="stroke:#A80036;stroke-width:1.0;" x1="777.5" x2="777.5" y1="459.4805" y2="599.7227"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1043.5" x2="1043.5" y1="60.7988" y2="418.5254"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="1043.5" x2="1043.5" y1="418.5254" y2="459.4805"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1043.5" x2="1043.5" y1="459.4805" y2="599.7227"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1312" x2="1312" y1="60.7988" y2="418.5254"/><line style="stroke:#A80036;stroke-width:1.0;stroke-dasharray:1.0,4.0;" x1="1312" x2="1312" y1="418.5254" y2="459.4805"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1312" x2="1312" y1="459.4805" y2="599.7227"/><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="112" x="5" y="25.3105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="12" y="45.8457">Language SDK</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="112" x="5" y="598.7227"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="98" x="12" y="619.2578">Language SDK</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="135" x="356.5" y="25.3105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="363.5" y="45.8457">Resource Monitor</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="135" x="356.5" y="598.7227"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121" x="363.5" y="619.2578">Resource Monitor</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="117" x="717.5" y="25.3105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="103" x="724.5" y="45.8457">Step Generator</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="117" x="717.5" y="598.7227"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="103" x="724.5" y="619.2578">Step Generator</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="109" x="987.5" y="25.3105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95" x="994.5" y="45.8457">Step Executor</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="109" x="987.5" y="598.7227"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="95" x="994.5" y="619.2578">Step Executor</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="138" x="1241" y="25.3105"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="1248" y="45.8457">Resource Provider</text><rect fill="#FEFECE" filter="url(#fqymxxka9icp1)" height="30.4883" style="stroke:#A80036;stroke-width:1.5;" width="138" x="1241" y="598.7227"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124" x="1248" y="619.2578">Resource Provider</text><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="318.416" style="stroke:#A80036;stroke-width:1.0;" width="10" x="421" y="92.1094"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="159.208" style="stroke:#A80036;stroke-width:1.0;" width="10" x="773" y="121.4199"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="100.5869" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1039" y="280.6279"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="67.6211" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1039" y="523.1016"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="150.7305"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="209.3516"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="322.5938"/><rect fill="#FFFFFF" filter="url(#fqymxxka9icp1)" height="29.3105" style="stroke:#A80036;stroke-width:1.0;" width="10" x="1307" y="552.4121"/><polygon fill="#A80036" points="409,88.1094,419,92.1094,409,96.1094,413,92.1094" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="63" x2="415" y1="92.1094" y2="92.1094"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="339" x="70" y="87.3672">RegisterResourceRequest(type, name, inputs, options)</text><polygon fill="#A80036" points="761,117.4199,771,121.4199,761,125.4199,765,121.4199" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="431" x2="767" y1="121.4199" y2="121.4199"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="323" x="438" y="116.6777">RegisterResourceEvent(type, name, inputs, options)</text><polygon fill="#A80036" points="1295,146.7305,1305,150.7305,1295,154.7305,1299,150.7305" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="783" x2="1301" y1="150.7305" y2="150.7305"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="244" x="790" y="145.9883">CheckRequest(type, inputs, old inputs)</text><polygon fill="#A80036" points="794,176.041,784,180.041,794,184.041,790,180.041" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="788" x2="1311" y1="180.041" y2="180.041"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="205" x="800" y="175.2988">CheckResponse(inputs', failures)</text><polygon fill="#A80036" points="1295,205.3516,1305,209.3516,1295,213.3516,1299,209.3516" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="783" x2="1301" y1="209.3516" y2="209.3516"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="279" x="790" y="204.6094">DiffRequest(type, inputs', old state, options)</text><polygon fill="#A80036" points="794,234.6621,784,238.6621,794,242.6621,790,238.6621" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="788" x2="1311" y1="238.6621" y2="238.6621"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="121" x="800" y="233.9199">DiffResponse(diffs)</text><polygon fill="#A80036" points="1027,276.6279,1037,280.6279,1027,284.6279,1031,280.6279" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="778" x2="1033" y1="280.6279" y2="280.6279"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="237" x="785" y="275.8857">CreateStep(inputs', old state, options)</text><path d="M375,251.6621 L375,291.6621 L764,291.6621 L764,261.6621 L754,251.6621 L375,251.6621 " fill="#FBFB77" filter="url(#fqymxxka9icp1)" style="stroke:#A80036;stroke-width:1.0;"/><path d="M754,251.6621 L754,261.6621 L764,261.6621 L754,251.6621 " fill="#FBFB77" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="357" x="381" y="269.2305">This is fire-and-forget on the part of the step generator.</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="368" x="381" y="284.541">The step will run in parallel with steps for other resources.</text><polygon fill="#A80036" points="1295,318.5938,1305,322.5938,1295,326.5938,1299,322.5938" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1049" x2="1301" y1="322.5938" y2="322.5938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="239" x="1056" y="317.8516">CreateRequest(type, inputs', old state)</text><polygon fill="#A80036" points="1060,347.9043,1050,351.9043,1060,355.9043,1056,351.9043" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1054" x2="1311" y1="351.9043" y2="351.9043"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="168" x="1066" y="347.1621">CreateResponse(new state)</text><polygon fill="#A80036" points="442,377.2148,432,381.2148,442,385.2148,438,381.2148" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="436" x2="1043" y1="381.2148" y2="381.2148"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="99" x="448" y="376.4727">done(new state)</text><polygon fill="#A80036" points="74,406.5254,64,410.5254,74,414.5254,70,410.5254" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="68" x2="425" y1="410.5254" y2="410.5254"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="287" x="80" y="405.7832">RegisterResourceResponse(urn, ID, new state)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacing" textLength="115" x="630" y="443.1602">Pulumi program exits</text><line style="stroke:#A80036;stroke-width:1.0;" x1="778" x2="820" y1="480.791" y2="480.791"/><line style="stroke:#A80036;stroke-width:1.0;" x1="820" x2="820" y1="480.791" y2="493.791"/><line style="stroke:#A80036;stroke-width:1.0;" x1="779" x2="820" y1="493.791" y2="493.791"/><polygon fill="#A80036" points="789,489.791,779,493.791,789,497.791,785,493.791" style="stroke:#A80036;stroke-width:1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="135" x="785" y="476.0488">Generate delete steps</text><polygon fill="#A80036" points="1027,519.1016,1037,523.1016,1027,527.1016,1031,523.1016" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="778" x2="1033" y1="523.1016" y2="523.1016"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="130" x="785" y="518.3594">DeleteStep(old state)</text><polygon fill="#A80036" points="1295,548.4121,1305,552.4121,1295,556.4121,1299,552.4121" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1049" x2="1301" y1="552.4121" y2="552.4121"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="188" x="1056" y="547.6699">DeleteRequest(type, old state)</text><polygon fill="#A80036" points="1060,577.7227,1050,581.7227,1060,585.7227,1056,581.7227" style="stroke:#A80036;stroke-width:1.0;"/><line style="stroke:#A80036;stroke-width:1.0;" x1="1054" x2="1311" y1="581.7227" y2="581.7227"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacing" textLength="108" x="1066" y="576.9805">DeleteResponse()</text><!--MD5=[ba5761f693f15dd3d1d66420805f703c]
|
|
@startuml
|
|
participant "Language SDK" order 10
|
|
box "Engine"
|
|
participant "Resource Monitor" order 15
|
|
participant "Step Generator" order 20
|
|
participant "Step Executor" order 25
|
|
end box
|
|
participant "Resource Provider" order 30
|
|
|
|
"Language SDK" -> "Resource Monitor" ++ : RegisterResourceRequest(type, name, inputs, options)
|
|
"Resource Monitor" -> "Step Generator" ++ : RegisterResourceEvent(type, name, inputs, options)
|
|
"Step Generator" -> "Resource Provider" ++ : CheckRequest(type, inputs, old inputs)
|
|
"Step Generator" <- "Resource Provider" - - : CheckResponse(inputs', failures)
|
|
"Step Generator" -> "Resource Provider" ++ : DiffRequest(type, inputs', old state, options)
|
|
"Step Generator" <- "Resource Provider" - - : DiffResponse(diffs)
|
|
"Step Generator" -> "Step Executor" - -++ : CreateStep(inputs', old state, options)
|
|
note left
|
|
This is fire-and-forget on the part of the step generator.
|
|
The step will run in parallel with steps for other resources.
|
|
end note
|
|
"Step Executor" -> "Resource Provider" ++ : CreateRequest(type, inputs', old state)
|
|
"Step Executor" <- "Resource Provider" - - : CreateResponse(new state)
|
|
"Resource Monitor" <- "Step Executor" - - : done(new state)
|
|
"Language SDK" <- "Resource Monitor" - - : RegisterResourceResponse(urn, ID, new state)
|
|
...Pulumi program exits...
|
|
"Step Generator" -> "Step Generator": Generate delete steps
|
|
"Step Generator" -> "Step Executor" ++ : DeleteStep(old state)
|
|
"Step Executor" -> "Resource Provider" ++ : DeleteRequest(type, old state)
|
|
"Step Executor" <- "Resource Provider" - - : DeleteResponse()
|
|
@enduml
|
|
|
|
PlantUML version 1.2021.9(Sun Jul 25 03:13:56 PDT 2021)
|
|
(GPL source distribution)
|
|
Java Runtime: OpenJDK Runtime Environment
|
|
JVM: OpenJDK 64-Bit Server VM
|
|
Default Encoding: UTF-8
|
|
Language: en
|
|
Country: US
|
|
--></g></svg> |