Skip to content
CCPEDIAby Unity Nodes
VideosLesson 1: Decisions, Actors, and Authority

Lesson 1: Decisions, Actors, and Authority

Nothing is loaded from YouTube until you press play, and then without tracking cookies.

About this video

For a better learning experience, sign up and enroll in this free course at: daml.talentlms.com/plus/catalog/courses/152

Transcript

1,530 words

Captions as YouTube publishes them, usually machine-generated, so names such as Daml and Canton can be misheard.

  1. 0:00

    in this course we will break down the fundamentals of multi-party workflows and how to represent them in daml daml is a language for Designing business workflows that break down the silos that isolate organizations and introduce risk and uncertainty to their business processes to achieve this daml has a number of features that make designing workflows for daml different from what you may have experienced building single organization workflows in the past in

  2. 0:30

    this lesson we will Begin by building up our understanding of daml design from the fundamentals of business workflows in particular this lesson will try to answer three key questions that underpin daml workflow design what is a decision in daml who makes the decision and how is that decision authorized we will be keeping the focus on the business properties fundamental to multi-party workflows properties that once identif

  3. 1:00

    ified will form the requirements and detailed designs for a workflow in a daml application we will not be covering how to convert these designs into code or matters of deployment platform or operational considerations we will be staying focused on the business side of daml application design hopefully we all have an intuitive idea of what a workflow is a series of steps defining a process or activity leading to a desired goal multi-party applications are a

  4. 1:34

    collection of multi-party workflows which in turn involve multiple people in potentially multiple roles across multiple organizations that could sound complex so it helps to pause for a moment and reconsider the problem from first principles that is to think about what really goes into a workflow and how we can best approach designing one once you go beyond a single Silo workflow and introduce multiple people in multiple roles distributed across multiple

  5. 2:06

    organizations some methods of working with single Silo applications can lead us astray ultimately workflows are about people doing things which means it is useful to think about them in terms of actions specifically people making decisions that have consequences of course some of those consequences enable people to make more decisions that then have more consequences this is the core Loop that drives a business workflow a distributed workflow is one

  6. 2:39

    where the decisions being made and their consequences are no longer neatly confined to a single person team or organization but require coordination verification and rules shared across multiple organizations which is where daml comes in at a fundamental level a workflow results in a series of events that are the result of people making decisions that have consequences that result in more events the key difference between a

  7. 3:11

    siloed business workflow and a distributed multi-party workflow is we must take care with the details linking the consequences and the subsequent events now that we are no longer in a single organization in a single data silo or a single trust boundary we have to care about who can observe decisions being made and their consequences we also have to care about who is authorized to make decisions and because in a distributed

  8. 3:40

    system we no longer have convenient centralized user management we have to care about how decisions become authorized events people decisions consequences observers and authorization these are the fundamental building blocks of a distributed workflow and and at the center of them is making decisions so as we design a DL workflow we will keep coming back to understanding the decisions being made one way we can do this is to answer a

  9. 4:12

    set of key questions about each decision what was the decision who made the decision what was their role in making this decision who authorized them to make the decision what are the consequences of the decision who must be informed of the decision and who needs to be notified of the consequences of the decision part of the power of daml is that it provides first class representation for each of these Concepts and so we will start by taking some time to consider the first of these

  10. 4:46

    key questions the first question is what was the decision in damel an available decision a decision that can be made is called a choice making a decision then becomes exercising a choice the answer to what was the decision is going to be the choice that was exercised in practice this will mean someone connected to the Ledger authenticated themselves and submitted a command that resulted in exercising a choice that

  11. 5:17

    choice is the decision in daml an individual or Collective someone who can authenticate and connect to The Ledger is represented by a user it's important to note that authentication is always done per user so when it comes to making a decision in daml it will always be a user that authenticated themselves and submitted the command when the workflow is being run users are very important however when designing a workflow more important than the specific individual

  12. 5:50

    is the authority they acted under Authority is generally attached to the role an individual was fulfilling in any organization people wear different hats at different times a software engineer might be a developer release coordinator and third level support another person may be a team manager purchasing officer and risk committee convenor the same role might be fulfilled by different people at different times for example there may be

  13. 6:22

    multiple people able to act as the approving purchasing officer generally Authority comes with the hat not with the individual so the next most important question after what was the decision is what role provided the authorization to make the decision in damel this idea of a role or more specifically an entity with authorization to act is represented by a party it's important to keep the distinction between the individual or

  14. 6:52

    user and the role they are fulfilling in a workflow or party in mind which individual fulfills a role role is important but it is an internal matter for the organization from the perspective of other organizations it is only the role that matters for example from the perspective of Acme office supplies it might matter whether it is Sue or Bob who signs the purchase order from the perspective of their suppliers the only thing they care about in fact

  15. 7:22

    the only thing they know is that a purchase officer signed the order so when designing a workflow we will occasionally ask a question about who is doing something and we will mean a user but most of the time when we talk about who we are talking about the party a damel choice represent an authorization to act this means there is a link between something can happen and who can decide something will happen so most questions about who are answered by

  16. 7:54

    using a daml party in daml a party represents a role with authority therefore for each choice there is at least one party authorized to exercise the choice at least one role authorized to act these parties are called controllers of the choice in damel terms when we come to ask who authorized them to make the decision we are asking who authorized the controller to be allowed to exercise the choice in daml the act of authorizing is captured in the daml

  17. 8:28

    concept of a signator as with the controller here we are interested in the role that authorized the ACT rather than the specific individual so we use a daml party to answer this question each choice belongs to a contract and that contract has a list of parties that authorize the choices enabled by that contract the authorizing parties on a contract are called the signatories of the contract when a contract is created on a DL Ledger the signatories to that

  18. 9:00

    contract authorize all its choices for as long as the contract remains in effect we refer to this as an active contract so in damel the answer to who authorized the decision maker to make the decision is the signatories on the contract containing the choice what we have so far is a way to answer the questions what was the decision who made the decision and who authorized the decision in daml potential decisions become choices on active contracts and

  19. 9:34

    making a decision is represented by exercising one of those choices similarly a command is submitted by a user acting as a party and it is that party who makes the decision this is represented by the controller party finally the authorization to make the decision is associated with the active contract itself the choice is enabled by a cont contract are authorized by the signatories of the contract so who authorized the decision is represented

  20. 10:06

    by the signatories on the contract where the choice was exercised so these questions have led us to some of the most important Concepts in daml the choice the exercise the party and specifically the controller who exercises the choice and the signatory who authorizes it from here we will consider the remaining questions to understand the consequences of decisions from this we will understand how daml represents consequences and how

  21. 10:38

    it manages who will be informed of them