Skip to content

ADR-001: custom connector over Eclipse Dataspace Components

Status: Accepted

Date: 2024

Context

Building a Gaia-X data space requires a connector — a component that implements the IDSA Dataspace Protocol and handles catalogue queries, contract negotiation, and data transfer. Several existing connectors are available, most notably Eclipse Dataspace Components (EDC).

The two realistic options were:

  1. Use EDC (Eclipse Dataspace Components)
  2. Build a custom connector based directly on the IDSA DSP specification

Decision

Build a custom connector. The result is RUN-DSP.

Rationale

EDC advantages: - Active community and a breadth of existing features. - The one-instance-per-participant model works well in corporate environments.

EDC disadvantages: - Does not support multi-tenancy out of the box. Serving individual data owners at scale would require running one container per user, which is not viable for large numbers of participants. - Monolithic and tightly coupled architecture. Extensions must be implemented as plugins inside the core, which reduces maintainability. - Dependency on a community-driven roadmap in a fast-moving research environment introduces uncertainty.

Custom connector advantages: - Designed for multi-tenancy from the start. A single RUN-DSP instance can serve many participants simultaneously. - Service-oriented architecture. Extensions are loosely coupled services added via gRPC hooks, not plugins compiled into the core. - Full control over maintenance, roadmap, and deployment model. - Purpose-built to the specific requirements of the dataLOFT platform.

Custom connector disadvantages: - No established community ecosystem. - Higher initial development effort. - Full responsibility for maintenance, security updates, and future development.

Consequences

Positive: - Flexible, loosely coupled architecture that can accommodate both private users and organisations. - No dependency on external communities or roadmaps. - The hook-based extensibility model makes it straightforward to integrate custom auth and contract services.

Negative: - The team bears full responsibility for the connector's correctness, security, and ongoing maintenance. - No access to community resources such as shared bugfix support or established best practices.