CommandId, workflowId, transactionId, eventId and contractId

Looks basically alright, with a couple of remarks.

  • Events ids apply to any event, including non-consuming exercises.

  • About workflow ids I would add that they are optional identifiers that tie together multiple submissions that logically belong together in a single business process that needs to be divided in multiple submissions (e.g. a proposal/accept pattern).

  • There’s also an application id which is mandatory to send commands because it’s the handle used to read completions for a specific application.

  • About the statement that “the command id is only visible to the submitter”, if you know the application id and you’re properly authorized you can read the completions related to that application id and that includes the command identifier. In practical terms that in most cases that fully overlaps with “the submitter” but I wanted to point out that it’s not necessarily the case.

2 Likes