Hi @dtrvno,
Terraform expects the provider itself to be responsible for determining when an operation is “done”, by waiting to respond to the request from Terraform Core until the results are ready to use.
In the ideal case whatever is doing the instantiation you want to monitor would itself block until the operation is complete, so that you don’t need any extra data sources or other tricks to get the correct ordering of operations.
However, if you cannot make your original operation properly wait until it’s complete then indeed a custom data source that polls the status and returns only once the status becomes ready or failed seems like a plausible workaround.