@startuml node "Language Plugin" as plugin { interface gRPC as langhost component "Language SDK" as sdk } node "Pulumi CLI" as cli { interface gRPC as resmon component "Deployment engine" as engine component "State storage backend" as backend component "Code generators" as codegen resmon - engine sdk -down-> resmon engine -up-> langhost engine -right-> backend } node "Resource Providers" as providers { interface gRPC as provider component "Package schemas" as schemas component "Multi-language components" as mlcs component "Cloud resources" as resources provider - mlcs provider - resources engine -down-> provider mlcs -up-> resmon } @enduml