The ticket example works. I would say that it is totally fine to just store the user UID then grab that from the Users domain. Your primary NoSql DB is likely to be crazy fast at a fetch by ID. The extra few milliseconds are worth the scalability. This also gives you a field to index to find all tickets that belong to the user.

Of course, I agree with the principal. If your user names rarely change (that’s pretty normal) then denoralizing makes total sense. If the user name did change, you might update all upcoming tickets and that can be done in a async/event driven task anyway.

I find that NoSQL fits most database needs in a cloud or microservice environment. It’s good to see articles teaching devs how to use them properly. Thanks.