Record version of DMN?

We have not yet deployed Camunda, but are investigating how our requirements translates to how we should use it. We have planned to use DMN to control the flow in the process.

One hard requirement is that we need to be able to tell what version of the DMN was used for each decision. Do we need to call the DMN from Java or REST in order to be able to record and log the version of the DMN, or is it possible to record the version used when triggering the DMN from the BPMN?

I assume that we’re talking about Camunda 8.

For each evaluation of a decision, Zeebe (the workflow engine of Camunda 8) writes an event on the stream. The event contains all information about the evaluation, including the version of the evaluated decision.

Yes, Camunda 8.

Can I audit this stream, or should I ”export” it in order to make it available for audit. Do you know of resources that explain best practices to make use of it?

You could use the Operate API for decision instances: Overview | Camunda 8 Docs

Or, the community project ZeeQS: GitHub - camunda-community-hub/zeeqs: GraphQL API for Zeebe data

Or, consuming the event stream yourself. For example, using the community Hazelcast exporter: GitHub - camunda-community-hub/zeebe-hazelcast-exporter: Export events from Zeebe to Hazelcast