Guys - what do you think about creating dedicated implementation for different custom state backends? Right now, it works purely on object storage level and although it’s dead simple (and I adore simple solutions as a first version), it does have some missing parts (see discussion: https://github.com/pulumi/pulumi/pull/2697/files#r314900986).
Thanks to such modularity, we could implement different scenarios.
For example in case of S3, we most probably should mimic Terraform approach and use DynamoDB (or make it optional with the fallback to the current implementation done purely on S3).
In case of GCS we can actually do that without any additional cloud resources as GCS has a feature called Preconditions (https://stackoverflow.com/a/68075384/2547538). BTW, that’s what terraform uses for GCS backend.
I guess there’s something for Azure guys but I have no idea what’s going on in Microsoft world.
Additionally, we might implement