Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I can deploy a DMN decision #8067

Closed
Tracked by #8083
saig0 opened this issue Oct 26, 2021 · 7 comments · Fixed by #8531
Closed
Tracked by #8083

I can deploy a DMN decision #8067

saig0 opened this issue Oct 26, 2021 · 7 comments · Fixed by #8531
Assignees
Labels
kind/feature Categorizes an issue or PR as a feature, i.e. new behavior scope/broker Marks an issue or PR to appear in the broker section of the changelog

Comments

@saig0
Copy link
Member

saig0 commented Oct 26, 2021

Description

I can use a Zeebe client to deploy a DMN decision. As a result of the deployment, Zeebe produces records on the log stream to reflect the deployed decisions.

  • create a new record DecisionRecord with the properties:
    • decisionId
    • decisionName
    • version
    • decisionKey
    • decisionRequirementsKey
    • decisionRequirementsId
  • create a new record DecisionRequirementsRecord
    • decisionRequirementsKey
    • decisionRequirementsId
    • decisionRequirementsName
    • decisionRequirementsVersion
    • namespace
    • resourceName
    • resource
    • checksum
  • produce one DecisionRequirementsDefinitionRecord for each DMN resource (i.e. represents the DRG - aka. DRD)
  • produce one DecisionRecord for each decision within a DRG
  • reject the deployment if the DMN is invalid

Note that the resources of the DMN are only stored in DecisionRequirementsDefinitionRecord and not in DecisionRecord to avoid duplication of the resource (and reaching the max. message size).

blocked by #8060
blocked by #8063


Edit: I changed the names from DecisionRequirementsDefinition* to DecisionRequirements* (removed the Definition part).

@korthout
Copy link
Member

korthout commented Nov 4, 2021

@saig0 We could consider to drop the Definition-part of DecisionRequirementsDefinitionRecord (i.e. DecisionRequirementsRecord) as a shorter alternative which is closer to the ProcessRecord currently used in Zeebe. What do you think?

@korthout
Copy link
Member

korthout commented Nov 4, 2021

We'll also need to consider the intents we want to support for these record types: CREATED, DEPLOYED, DISTRUBUTED, FULLY_DISTRIBUTED, etc.

@korthout
Copy link
Member

korthout commented Nov 4, 2021

We should also consider how we provide the DRG/decision to the gateway. For example, do we need changes to the current deployProcess RPC?

EDIT: I had not yet seen #8065, but it's already covered.

@saig0
Copy link
Member Author

saig0 commented Nov 5, 2021

We'll also need to consider the intents we want to support for these record types: CREATED, DEPLOYED, DISTRUBUTED, FULLY_DISTRIBUTED, etc.

The process record has only one intent: created. I think that we can do the same here.

The distribution is happening on the deployment record. But not on the process records.

Does this make sense for you?

@saig0
Copy link
Member Author

saig0 commented Nov 5, 2021

We could consider to drop the Definition-part of DecisionRequirementsDefinitionRecord (i.e. DecisionRequirementsRecord) as a shorter alternative which is closer to the ProcessRecord currently used in Zeebe. What do you think?

Yes, the naming is not fixed yet 👍

DecisionRequirementsRecord would be an option. Originally, in DMN, it is called Decision Requirements Graph (DRG), aka. Decision Requirements Diagram (DRD). 🤔

@nazlikaya
Copy link

@saig0 can you help me to understand the following topics?

  • Will DRDs also have a version assigned to them?

  • From a user perspective, if I want to filter in Operate DRDs, the user will use the decisionRequirementsDefinitionName?

@saig0
Copy link
Member Author

saig0 commented Dec 7, 2021

@nazlikaya regarding your questions:

Will DRDs also have a version assigned to them?

Yes. Thank for the hint 👍 I updated the description.

From a user perspective, if I want to filter in Operate DRDs, the user will use the decisionRequirementsDefinitionName?

Yes. The decisionRequirementsDefinitionName should contain the human-readable name.
However, the name is maybe not set by the user if the DRG contains only one decision.

@saig0 saig0 self-assigned this Jan 4, 2022
@saig0 saig0 moved this from Planned to In progress in Zeebe Jan 4, 2022
@saig0 saig0 mentioned this issue Jan 6, 2022
9 tasks
@ghost ghost closed this as completed in 8b63fe8 Jan 7, 2022
Zeebe automation moved this from In progress to Done Jan 7, 2022
@KerstinHebel KerstinHebel removed this from Done in Zeebe Mar 23, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes an issue or PR as a feature, i.e. new behavior scope/broker Marks an issue or PR to appear in the broker section of the changelog
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants