Skip to content

Decision Records

Architecture Decision Records (ADRs) document significant technical decisions made during the development of Tractus-X TestLab.

Format

Each ADR follows the Michael Nygard format:

Section Purpose
Status Proposed, Accepted, Deprecated, or Superseded
Date When the decision was made
Context Forces at play and constraints
Decision What was decided
Consequences Trade-offs accepted

Records

ADRs are grouped by the part of the system they primarily affect: the backend Python library (src/tractusx_testlab/) or shared concerns that span the system. The template lives at the root of this folder.

Backend

ADR Title Status
0005 Filesystem Participant Manager with Protocol Accepted
0012 Compilation and Packaging Proposed
0014 Flat Compilation Intermediate Representation Accepted
0015 Package Asset Resolution Accepted
0016 Execution Trace Format Proposed
0017 Input Callback Endpoint Proposed
0019 Service Requirements and Engine Bindings Proposed
0022 TCK Static Inspection Accepted
0023 Variable Scope Annotation (engine / sut) Accepted
0024 Test-Level Skip Configuration Accepted

Shared

ADR Title Status
0003 SSE for Live Execution Accepted
0008 Test-Case to TCK Rename Accepted
0009 Typed Variable Class System Accepted
0010 YAML Syntax v2 (GHA-Inspired) Accepted
0011 Environment Variables and Services Management Proposed
0018 Unified Variables Model (Preconditions as Complex Variables) Accepted (finalized by 0021)
0021 Remove the Precondition Concept in Favor of Unified Variables Accepted
0025 Assertions Read Declared Returns Proposed

Deprecated / Superseded

These ADRs are not published and remain as plain-text history only.

ADR Title Status
0004 Precondition as Distinct Step Phase Superseded by 0021 (not published)
0007 Precondition Execution Logs Model Superseded by 0021 (not published)
0013 Preconditions Specification Superseded by 0021 (not published)

Creating a New ADR

  1. Copy ADR-0000-template.md to ADR-NNNN-short-title.md (next available number).
  2. Fill in all sections.
  3. Place the file in the correct subfolder — backend/ or shared/ — based on which part of the system the decision primarily affects.
  4. Add the entry to the matching subsection in this index table, using the subfolder path (for example [NNNN](backend/ADR-NNNN-short-title.md)).
  5. Add the file to mkdocs.yml under the Decision Records nav section, in the matching Backend: / Shared: group.