Should everything be on the ledger?

There’s actually a guide by @bernhard on what to store on the ledger and what not to: On Attachments: What you should and shouldn't store on a ledger

One common case of making contracts observable by users is Party aliases which is covered in a guide by @Leonid_Rozenberg here, you could generalize this to your usecase and make ProductType accessible to all: User aliases, a tale of two approaches. A developer grapples with DAML

Lastly any app built with DAML is distributed among multiple parties but not decentralized as the parties that operate the ledger ultimately have collective control over the state of the ledger and could even up and delete the entire thing if they all collectively chose to, not that they would, and it’s more fault tolerant than say regular old SQL but it’s still always an option :slight_smile: