Skip to content

Commit 3f6bccf

Browse files
authored
docs: add multi data space support decision record (#2506)
* docs: add multi data space support decision record * chore: fix linting * docs: implement reviews for multi data space support decision record
1 parent 53f6c35 commit 3f6bccf

File tree

1 file changed

+87
-0
lines changed
  • docs/development/decision-records/2026-01-07_multi-dataspace-support

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Multi Data Space Support
2+
3+
## Decision
4+
5+
The Tractus-X EDC will distinguish between generic and Catena-X specific implementations, to enable future multi data space support. Existing extensions will be refactored so that every extension can clearly be categorized into a `core` (data space agnostic implementation) and data space-specific implementation (e.g., `catena-x`). The decision aims to enable future runtime configurations, such as data space specific flavors (e.g., `catena-x`, `factory-x`, `construct-x`), building upon the new `core` as midstream. The migration will be silent, to have minimal impact on current Catena-X users, while newer extensions and runtime configurations will be developed externally and merged into `tractusx-edc` when reaching production status.
6+
7+
## Rationale
8+
9+
The Tractus-X EDC was one of the first production-ready Connector implementations based on the upstream Eclipse Data Space Components (EDC) project for the Catena-X data space. Since then, various new data spaces have emerged, which also require connector configurations but can't use the Eclipse Tractus-X EDC directly because it includes Catena-X-specific implementations (like the BPN, the CX-Policy, etc.). This has led to further projects, like the [Factory-X EDC](https://github.com/factory-x-contributions/factoryx-edc), which build upon the Eclipse Tractus-X EDC as midstream but in a complex way using several exclusions. While other data spaces like Construct-X and Semiconductor-X also need a Connector without Catena-X specific aspects, this decision record aims to consolidate and bundle all development power into this Tractus-X EDC project to create an agnostic midstream `core` that can be used in other contexts than Catena-X. The rationale is supported by the [new Eclipse Tractus-X strategies to open and support multiple data spaces](https://github.com/eclipse-tractusx/eclipse-tractusx.github.io/pull/1370).
10+
11+
## Approach
12+
13+
This approach and work procedure is detailed in the following.
14+
15+
### Runtimes Concept & Structure
16+
17+
**Create one `core` data space agnostic runtime configuration and enable specific runtime flavors like `catena-x`, `factory-x`, and `construct-x`.**
18+
19+
Currently, there are two runtime configurations available: the [`edc-controlplane-base`](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-controlplane/edc-controlplane-base) and the [`edc-dataplane-base`](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-dataplane/edc-dataplane-base). Since these configurations are Catena-X specific, a new structure need to distinguish midstream `core` runtimes from data space specific runtimes.
20+
21+
One possible example of how a future structure might look:
22+
```
23+
tractusx-edc/
24+
├── edc-controlplane
25+
│ ├── edc-controlplane-core
26+
│ ├── edc-controlplane-catena-x
27+
├── edc-controlplane-base
28+
├── edc-controlplane-postgresql-hashicorp-vault
29+
└── edc-runtime-memory
30+
│ ├── edc-controlplane-factory-x
31+
│ ├── edc-controlplane-construct-x+
32+
│ └── ...
33+
└── edc-dataplane
34+
├── edc-dataplane-core
35+
├── edc-dataplane-catena-x
36+
├── edc-dataplane-base
37+
└── edc-dataplane-hashicorp-vault
38+
├── edc-dataplane-factory-x
39+
├── edc-dataplane-construct-x
40+
└── ...
41+
```
42+
43+
### Extensions
44+
45+
**Keep all extensions in the `edc-extensions` folder in this repo. Refactor some existing extensions that are needed across multiple data spaces (`core`) to be Catena-X-independent.**
46+
47+
Currently, the `edc-extensions` folder contains different extensions. They can be categorized into three categories:
48+
49+
1. **Generic extensions:** Data space agnostic, like the `agreement` extension
50+
2. **Data space specific extensions:** Only made for one data space, like the `cx-policy` extension
51+
3. **Generic, but specific:** Have a generic need and concept, but the implementation is currently data space specific, like the `dcp` extension (should be (1.) generic, but the implementation is currently specialized to (2.), the Catena-X data space)
52+
53+
All extensions from category (3.) will be refactored and split to distinguish between (1.) generic, and (2.) data space specific in the future.
54+
As an example, the current `dcp` extension could be split into a `dcp-core` extension, belonging to (1.) generic and a `cx-dcp` extension, belonging to (2.), including the Catena-X specific implementation.
55+
56+
The following extensions belong to category (3.) and need to be refactored:
57+
58+
- [`connector-discovery`](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/connector-discovery) (uses BDRS, a catena-x specific identity model, but is currently under refactoring)
59+
- [`dataspace-protocol`](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/dataspace-protocol) (supports multiple versions, incl. BPN, as catena-x specific)
60+
- [`dcp`](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/dcp) (interwoven with catena-x)
61+
- [`migrations`](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/edc-extensions/migrations) (interwoven with catena-x)
62+
63+
Further, the Factory-X project [published their extensions in another repository](https://github.com/factory-x-contributions/factoryx-edc/tree/main/edc-extensions). These extensions could be integrated and merged into this Eclipse Tractus-X EDC repository when reaching production status, providing a single place for all extensions.
64+
65+
### Development inside/outside `tractusx-edc`
66+
67+
**Necessary refactoring is made directly inside the `tractusx-edc` repository, while new developments are conducted externally.**
68+
69+
To enable multi data space support, the refactoring of the previously described extensions have to be made directly inside this `tractusx-edc`. The development of new runtimes and extensions is first developed externally, and potentially merged into `tractusx-edc` when reaching production status. _External_ could refer to closed-source or open-source development work in other (GitHub) organizations as well as development directly inside Eclipse Tractus-X, but in a new repository.
70+
71+
72+
### Releases, Backward Compatibility
73+
74+
**Create a silent transition with minimal impact for existing Catena-X users.**
75+
76+
Since this repository is only used by the Catena-X data space participants, the overall goal is to implement the suggested changes with minimal impact, so that existing users will not notice them or only notice them slightly. Possible breaking changes should be reduced to a minimum. Such breaking changes may occur due to new folder structures and (re)namings of runtimes and extensions. Nevertheless, the naming of existing Docker images, Helm charts, and Maven artifacts should stay as long as possible and reasonable.
77+
78+
Regarding the releases, future Tractus-X releases should include the Catena-X flavor connector only in the first run. Potentially new connector flavors of the other data spaces should not be included in the release in the first step. This helps create a fast transition, without large alignment between the Tractus-X planning and release cycles and the cycles and procedures of the other data spaces. Future adjustments to also publish the other flavors in the Eclipse Tractus-X release are possible, but not part of this decision record.
79+
80+
## NOTICE
81+
82+
This work is licensed under the [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0).
83+
84+
- SPDX-License-Identifier: Apache-2.0
85+
- SPDX-FileCopyrightText: 2026 Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V. (represented by Fraunhofer ISST)
86+
- SPDX-FileCopyrightText: 2026 Contributors to the Eclipse Foundation
87+
- Source URL: <https://github.com/eclipse-tractusx/tractusx-edc>

0 commit comments

Comments
 (0)