mirror of https://github.com/pulumi/pulumi.git
28 lines
1.4 KiB
Plaintext
28 lines
1.4 KiB
Plaintext
@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" --++ : [DeleteStep(old state), CreateStep(inputs', options)]
|
|
note left
|
|
This is fire-and-forget on the part of the step generator.
|
|
The steps will run in parallel with steps for other resources.
|
|
end note
|
|
"Step Executor" -> "Resource Provider" ++ : DeleteRequest(type, old state)
|
|
"Step Executor" <- "Resource Provider" -- : DeleteResponse()
|
|
"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)
|
|
@enduml
|