Hello, I am using Dagster to orchestrate generation of text using LLMs. Each time the output is generated, it is different due to the inherent randomness in the generation process. Is it the best practice to use assets for this or ops? I want to generate the output and then store it in a DB, in addition to it being stored in a persistent file system. What should my computation graph look like? Should I materialize assets and then use ops to store it, or should storing be part of the asset function?