Skip to content
CCPEDIAby Unity Nodes
Discussions/App Development/List of type Party a good practice, bad practice, or just a practice?Forum ↗

List of type Party a good practice, bad practice, or just a practice?

App Development2 posts229 views4 likesLast activity Jun 2023
DA
DAMcQueenOP
Jun 2023

I’m still new to Daml and have only built small toy apps. I’ve been reviewing other apps and noticed on occasion people creating templates with lists of Parties, like this:

template Asset
  with
    owner : Party
    description : Optional Text
    observers : [Party]

My understanding of Party types in Daml is that a Party is a role that can represent an individual account, a group, or even a group of groups depending on the identity management system (IMS) and how the IMS maps to Party assignments. It seems to me that having the observers set as a list of Parties makes working with observers needlessly complex. Obviously you can do it and the Daml compiler/linter doesn’t restrict assignments that are a list of parties, but I wonder if this is a good or bad practice?

As a best practice should parties be managed by the identity management system exclusively and thereby (almost) always singular? Or, is this a fine practice and assigning observers to a list of parties is reasonable if needed?

CO
cocreature
Jun 2023

Multiple parties are fine at least up to reasonable sizes, let’s say ~50. Once you go above that you might run into some performance issues.

The option of “use a single party and manage it at the IMS/IAM” level is fairly limited in two major ways:

  1. You’re giving up on representing things in Daml. It now depends on your external system. That’s perfectly fine in some cases but can be a problem in others.
  2. The “control through IAM” option works fine if all users are hosted on the same participant. But in a distributed system you cannot assume that in general. If that’s not the case you can’t really make this work.
← Back to Discussions