ReconciliationDecision

sealed interface ReconciliationDecision

How a proposition should be projected relative to artifacts that already exist in a target backend: create a new artifact, adopt an existing one, or align with it.

Returned by a Reconciler so that projection logic can avoid duplicating artifacts in a target store that DICE does not own. The reconciliation choice is expressed as an explicit result rather than being hidden inside backend-specific code.

Inheritors

Types

Link copied to clipboard
data class Adopt(val targetRef: String) : ReconciliationDecision

Adopt an existing target artifact as the projection of this proposition. The proposition's projected identity becomes targetRef.

Link copied to clipboard
data class Align(val targetRef: String) : ReconciliationDecision

Align this proposition with an existing target artifact without fully adopting it — e.g. add/merge attributes while keeping distinct identity.

Link copied to clipboard

No matching artifact exists; create a new one in the target.