SDK Structure and Components
The Eclipse Tractus-X SDK follows a modular architecture that provides clean separation of concerns and maximum flexibility for dataspace application development.
Overview
The SDK is organized into three main libraries, each serving distinct purposes:
-
Dataspace Library
Core connector services and Eclipse Tractus-X Connector integration for basic dataspace operations.
-
Industry Library
Digital Twin Registry and Submodel Server integration for industry-specific data models and standards.
-
Extensions Library
Use case-specific extensions and add-on functionality for custom business logic implementations.
Architecture Layers
The SDK implements a layered architecture that promotes clean code organization and maintainability:
graph LR
A["๐ฏ Your App"] --> B["๐ Services"]
B --> C["๐ฎ Controllers"]
C --> D["๐ Adapters"]
D --> E["๐ EDC Connector"]
style A fill:#e1f5fe
style B fill:#f3e5f5
style E fill:#e8f5e8
Library Structure
1. Dataspace Library (tractusx_sdk.dataspace
)
The foundation layer for all dataspace interactions:
tractusx_sdk/dataspace/
โโโ adapters/ # HTTP communication adapters
โ โโโ connector/ # Connector-specific adapters
โโโ controllers/ # API request handlers
โ โโโ connector/ # Connector API controllers
โโโ managers/ # Authentication and connection management
โ โโโ connection/ # Connection lifecycle management
โโโ models/ # Data models and schemas
โ โโโ connection/ # Connection-related models
โ โโโ connector/ # Connector data models
โโโ services/ # High-level business logic
โ โโโ connector/ # Connector service implementations
โ โโโ discovery/ # Discovery service integrations
โโโ tools/ # Utility functions and helpers
Key Components:
- Service Factory - Creates connector services with proper configuration
- Base Connector Service - Core abstraction for EDC connector interactions
- Connection Managers - Handles connection lifecycle and authentication
- HTTP Adapters - Low-level HTTP communication with connectors
- Discovery Services - Dataspace discovery and catalog operations
2. Industry Library (tractusx_sdk.industry
)
Specialized components for industry-specific use cases:
tractusx_sdk/industry/
โโโ adapters/ # Industry-specific adapters
โ โโโ submodel_adapters/ # Submodel service adapters
โโโ models/ # Industry data models
โ โโโ aas/ # Asset Administration Shell models
โ โโโ v3/ # Version 3 specific models
โโโ services/ # Industry services
โโโ discovery/ # Industry discovery services
Key Features:
- Digital Twin Registry - Integration with DTR for asset discovery
- Asset Administration Shell - AAS 3.0 compliant implementations
- BPN Discovery - Business Partner Number resolution services
- Submodel Lifecycle - Complete submodel management operations
- Industry Models - Specialized data models and schemas
3. Extensions Library (tractusx_sdk.extensions
)
Extensible framework for custom use cases:
Capabilities:
- Custom Logic - Integration of domain-specific business rules
- Semantic Models - Advanced semantic model processing
- Workflow Engine - Use case-specific process automation
- Plugin Architecture - Extensible framework support
- Domain Extensions - Industry-specific customizations
Design Patterns
Factory Pattern
The SDK extensively uses the Factory Pattern for service creation:
from tractusx_sdk.dataspace.services.connector.service_factory import ServiceFactory
# Create connector service
connector_service = ServiceFactory.get_connector_consumer_service(
dataspace_version="jupiter",
base_url="https://connector.example.com",
dma_path="/management",
headers=headers,
logger=logger
)
Adapter Pattern
Adapters provide clean abstractions over external protocols:
# High-level service call
assets = connector_service.get_assets()
# Internally uses adapters for HTTP communication
# โ Controller handles business logic
# โ Adapter handles HTTP protocol details
# โ External EDC connector receives request
Multi-Version Support
The SDK supports multiple dataspace versions for backward compatibility:
- Jupiter - Stable version for production use
- Saturn - Latest version with newest features
# Version-specific service creation
jupiter_service = ServiceFactory.get_connector_consumer_service(
dataspace_version="jupiter", # Stable
# ... other config
)
saturn_service = ServiceFactory.get_connector_consumer_service(
dataspace_version="saturn", # Latest
# ... other config
)
Integration Patterns
Complete Dataspace Integration
graph TD
A[Your Application] --> B[Dataspace Foundation Library]
A --> C[Industry Foundation Library]
A --> D[Extensions]
B --> E[EDC Connector]
B --> F[Discovery Services]
B --> G[Authentication]
C --> H[Digital Twin Registry]
C --> I[Submodel Services]
D --> J[Custom Use Cases]
D --> K[Semantic Extensions]
Key Benefits
-
Quick to Start
Get up and running in under 5 minutes with minimal configuration.
-
Easy to Use
Pythonic API with type hints, auto-completion, and comprehensive examples.
-
Production Ready
Built-in authentication, error handling, and retry mechanisms.
-
Extensible
Multi-version support and factory patterns for maximum flexibility.
Development Tips
๐ Start Simple: Begin with basic connector operations before adding complexity
๐ Reuse Services: Create service instances once and reuse them
๐ Enable Logging: Use verbose mode during development for better debugging
๐งช Test Incrementally: Test each component separately before integration
NOTICE
This work is licensed under the CC-BY-4.0.
- SPDX-License-Identifier: CC-BY-4.0
- SPDX-FileCopyrightText: 2025 Contributors to the Eclipse Foundation
- Source URL: https://github.com/eclipse-tractusx/tractusx-sdk