DataMate Backend is a microservices architecture based on Spring Boot 3.5 + Java 21, providing core functions such as data management, RAG indexing, and API gateway.
backend/
├── api-gateway/ # API Gateway + Authentication
├── services/
│ ├── data-management-service/ # Dataset management
│ ├── rag-indexer-service/ # RAG indexing
│ └── main-application/ # Main application entry
└── shared/
├── domain-common/ # DDD building blocks, exception handling
└── security-common/ # JWT utilities
| Service | Port | Description |
|---|---|---|
| main-application | 8080 | Main application, includes data management, data cleaning, operator marketplace modules |
| api-gateway | 8080 | API Gateway, route forwarding and authentication |
- Framework: Spring Boot 3.5.6, Spring Cloud 2025.0.0
- Language: Java 21
- Database: PostgreSQL 8.0.33 + MyBatis-Plus 3.5.14
- Cache: Redis 3.2.0
- Vector DB: Milvus (via SDK 2.6.6)
- Documentation: SpringDoc OpenAPI 2.2.0
- Build: Maven
- PostgreSQL:
datamate-database:5432 - Redis:
datamate-redis:6379 - Milvus: Vector database (RAG indexing)
- domain-common: Business exceptions, system parameters, domain entity base classes
- security-common: JWT utilities, auth helpers
- JDK 21+
- Maven 3.8+
- PostgreSQL 12+
- Redis 6+
cd backend
mvn clean installcd backend/services/main-application
mvn spring-boot:runcd backend/api-gateway
mvn spring-boot:runcom.datamate.{module}/
├── interfaces/
│ ├── rest/ # Controllers
│ ├── dto/ # Request/Response DTOs
│ ├── converter/ # MapStruct converters
│ └── validation/ # Custom validators
├── application/ # Application services
├── domain/
│ ├── model/ # Entities
│ └── repository/ # Repository interfaces
└── infrastructure/
├── persistence/ # Repository implementations
├── client/ # External API clients
└── config/ # Service configuration
- Entities: Extend
BaseEntity<ID>, use@TableName("t_*") - Controllers:
@RestController+@RequiredArgsConstructor - Services:
@Service+@Transactional - Error Handling:
throw BusinessException.of(ErrorCode.XXX) - MapStruct:
@Mapper(componentModel = "spring")
# Run all tests
mvn test
# Run specific test
mvn test -Dtest=ClassName#methodName
# Run specific module tests
mvn -pl services/data-management-service -am testDB_USERNAME: Database usernameDB_PASSWORD: Database passwordREDIS_PASSWORD: Redis passwordJWT_SECRET: JWT secret key
application.yml: Default configurationapplication-dev.yml: Development overrides
- API Docs: http://localhost:8080/api/swagger-ui.html
- AGENTS.md: See
backend/shared/AGENTS.mdfor shared libraries documentation - Service Docs: See individual service READMEs