Developer Guide¶
Everything you need to develop, build, test, and contribute to the Dataspace Ecosystem. This guide covers the development workflow from initial setup to running end-to-end tests.
-
Project Structure
Understand the repository layout: core modules, extensions, launchers, SPIs, and how they fit together.
-
Setup
Configure your development environment, IDE, and documentation tooling.
-
Build
Docker image configuration, base image customization, and vault type selection for container builds.
-
Testing
Testing strategy, from unit tests to full end-to-end system tests on Kubernetes.
-
Contributing
Contribution guidelines, code style, and the process for submitting changes.
Module Architecture¶
The Dataspace Ecosystem follows a layered module architecture designed for extensibility:
┌─────────────────────────────────────────────────┐
│ Launchers │
│ Runtime wiring & deployment configurations │
├─────────────────────────────────────────────────┤
│ Extensions │
│ Specific functionality & integrations │
├─────────────────────────────────────────────────┤
│ Core │
│ Default implementations & shared utilities │
├─────────────────────────────────────────────────┤
│ SPI (Interfaces) │
│ Contracts & service provider interfaces │
└─────────────────────────────────────────────────┘
| Layer | Purpose | Example |
|---|---|---|
| SPI | Define contracts and interfaces | TelemetryRecordStore, TelemetryService |
| Core | Provide default implementations | InMemoryTelemetryRecordStore |
| Extensions | Add specific runtime features | BillingConsumptionMetricsExtension |
| Launchers | Wire everything for deployment | telemetry-agent-postgresql-hashicorpvault |
Quick Links¶
| Topic | Description |
|---|---|
| Development Setup | IDE configuration and local development |
| Go Development Setup | Containerized Go builds for plugins |
| Documentation Setup | Serve and build the docs locally |
| Base Image Configuration | Customize Docker base images |
| Vault Selection Guide | Choose between HashiCorp and Azure vault |
| Testing Guide | System tests and end-to-end testing |
| Contributing | How to contribute to the project |