feat(build): Refactor infrastructure modules and establish single source of truth

This commit introduces a major refactoring of the build system and the core infrastructure modules. The primary goal is to establish a strict "Single Source of Truth" for all dependencies using Gradle Version Catalogs and to create a clean, maintainable, and scalable foundation for all current and future services.

### 1. Centralized Dependency Management (`libs.versions.toml`)

- **Established Single Source of Truth:** All dependency versions are now exclusively managed in `gradle/libs.versions.toml`. Hardcoded versions have been removed from all build scripts.
- **Introduced Gradle Bundles:** To simplify module dependencies, several bundles have been created (e.g., `testing-jvm`, `redis-cache`, `spring-cloud-gateway`, `monitoring-client`). This drastically reduces boilerplate in the `build.gradle.kts` files and improves readability.
- **Cleaned up Aliases:** All library and plugin aliases have been standardized for consistency.

### 2. Infrastructure Module Refactoring

All infrastructure modules (`core`, `platform`, `auth`, `cache`, `event-store`, `messaging`, `monitoring`, `gateway`) have been refactored to align with the new dependency management strategy.

- **Simplified Build Scripts:** The `build.gradle.kts` for each module now uses the new bundles and aliases, making them significantly cleaner and easier to understand.
- **Consistent Structure:** The architecture of each module now clearly follows the Port-Adapter pattern where applicable (e.g., `cache-api`/`redis-cache`).
- **Standardized `platform-bom`:** The project's own Bill of Materials (`platform-bom`) now also includes the Spring Cloud BOM, ensuring version consistency for all Spring-related dependencies.

### 3. Added Infrastructure Documentation

To improve onboarding and architectural understanding, a dedicated `README-*.md` file has been created for each refactored infrastructure module:
- `README-CORE.md`
- `README-PLATFORM.md`
- `README-INFRA-AUTH.md`
- `README-INFRA-CACHE.md`
- `README-INFRA-EVENT-STORE.md`
- `README-INFRA-MESSAGING.md`
- `README-INFRA-MONITORING.md`
- `README-INFRA-GATEWAY.md`

These documents explain the purpose, architecture, and usage of each component within the system. This lays the groundwork for our "Tracer Bullet" development approach.
This commit is contained in:
stefan
2025-07-31 14:09:22 +02:00
parent 81cb4582d6
commit df5919fac8
27 changed files with 882 additions and 356 deletions
@@ -1,3 +1,5 @@
/*
// Multiplatform
plugins {
alias(libs.plugins.kotlin.multiplatform)
}
@@ -11,12 +13,6 @@ kotlin {
sourceSets {
val commonMain by getting {
dependencies {
// KORREKTUR: Die explizite `platform()`-Abhängigkeit wird hier entfernt.
// Die Versionen aus der BOM werden trotzdem angewendet.
// KORREKTUR: `stdlib` und `reflect` werden entfernt.
// `stdlib` wird automatisch hinzugefügt.
api(libs.kotlinx.coroutines.core)
api(libs.kotlinx.serialization.json)
api(libs.kotlinx.datetime)
@@ -25,11 +21,30 @@ kotlin {
val jvmMain by getting {
dependencies {
api("org.jetbrains.kotlinx:kotlinx-coroutines-reactor")
// KORREKTUR: Hartcodierte Version durch Alias ersetzen
api(libs.kotlin.logging.jvm)
api(libs.kotlinx.coroutines.reactor)
}
}
}
}
*/
// Dieses Modul ist ein reines "Sammelmodul".
// Es hat keinen eigenen Code, sondern bündelt nur gemeinsame Laufzeit-Abhängigkeiten,
// die von den meisten JVM-Modulen benötigt werden.
plugins {
alias(libs.plugins.kotlin.jvm)
}
dependencies {
// Importiert die zentrale BOM, um konsistente Versionen zu gewährleisten.
api(platform(projects.platform.platformBom))
// Stellt die wichtigsten Kotlin(x)-Bibliotheken via `api` bereit,
// damit jedes Modul, das von `platform-dependencies` abhängt, diese automatisch erhält.
api(libs.kotlinx.coroutines.core)
api(libs.kotlinx.serialization.json)
api(libs.kotlinx.datetime)
api(libs.kotlin.logging.jvm)
api(libs.kotlinx.coroutines.reactor)
}