03/07/2022, 4:13 PM
@tall-librarian-49374 Saw you playing around with Temporal and Pulumi a few years ago. The current team I'm on is exploring wrapping pulumi inside temporal workflows. Do you know of any concerns I should have? I am trying to weigh* the pro and con right now of when to stack.up. How transactional is pulumi? I'm worried about mid execution failures during stack.up, and the different recovery scenarios. Hoping to mitigate them when temporal attempts to retry. Thanks for the small demo, I was surprised that google spit me an example out "temporal pulumi" lol.
đź‘€ 2


03/08/2022, 10:48 PM
Do you know of any concerns I should have?
Nothing concrete comes to mind. It sounds like you are asking the right questions.
How transactional is pulumi?
It’s not really transactional in the sense that a deployment may fail on any resource (if a resource can’t be created) and it will stop at that point. The state file will be self-consistent but the a multi-resource deployment is not atomic. There are no built-in rollbacks. Providers do some number of retries for transient errors.
Hoping to mitigate them when temporal attempts to retry.
Retries may help for long-ish transient errors that a provider did not wait to resolve but retries wont help for a lot of errors in practice (say, a resource’s properties aren’t configured correctly, or a conflict with pre-existing infra).


03/09/2022, 6:08 PM
@tall-librarian-49374 Thanks for the info. I've been tasked with cleaning up some Infrastructure deployment code / patterns. Probably going to attempt to create workflows / patterns where we limit the amount of resources and state in 1 single TF / Pulumi by wrapping it in workflow.
At the moment, I think we may just dump state before every execution. Not sure if there is a happy path to be able to take the current state file, the intended state file, and what is actually in the infrastructure and inline remediate a deployment with "import"