Files
meldestelle/backend/infrastructure/event-store/redis-event-store/build.gradle.kts
T
stefan 523c1fef0b refactor: migrate Redis cache implementation to Valkey with enhanced configurability
Replaced Redis with Valkey as the caching backend across infrastructure and application modules. Updated configurations, templates, and health checks to reflect Valkey-specific parameters. Improved compatibility with enhanced configurability, including max memory and memory eviction policy settings.
2026-02-12 20:35:25 +01:00

70 lines
2.7 KiB
Kotlin

// Dieses Modul stellt eine konkrete Implementierung der `event-store-api`
// unter Verwendung von Redis Streams als Event-Store-Backend bereit.
plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependencyManagement)
}
kotlin {
compilerOptions {
freeCompilerArgs.addAll(
"-opt-in=kotlin.time.ExperimentalTime",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-opt-in=kotlin.uuid.ExperimentalUuidApi"
)
}
}
dependencies {
// === Core Dependencies ===
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen
implementation(platform(projects.platform.platformBom))
// Implementiert die provider-agnostische Event-Store-API
api(projects.backend.infrastructure.eventStore.eventStoreApi)
// Benötigt Zugriff auf Core-Module für Domänen-Events und Utilities
implementation(projects.core.coreDomain)
implementation(projects.core.coreUtils)
// === Redis & Spring Dependencies ===
// OPTIMIERUNG: Wiederverwendung des `redis-cache`-Bundles, da es die
// gleichen Technologien (Spring Data Redis, Lettuce, Jackson) verwendet
implementation(libs.bundles.valkey.cache)
// Stellt Jakarta Annotations bereit (z. B. @PostConstruct), die von Spring verwendet werden
implementation(libs.jakarta.annotation.api)
// Für Kotlin-spezifische Coroutines-Integration mit Spring
implementation(libs.kotlinx.coroutines.reactor)
// === Test Dependencies ===
// Fügt JUnit, Mockk, AssertJ etc. für die Tests hinzu
testImplementation(projects.platform.platformTesting)
testImplementation(libs.bundles.testing.jvm)
testImplementation(libs.bundles.testcontainers)
// Zusätzliche Test-Dependencies für erweiterte Event-Store-Tests
testImplementation(libs.kotlinx.serialization.json)
testImplementation(libs.reactor.test)
// Für Integration Tests mit beiden Redis-Modulen
testImplementation(projects.backend.infrastructure.cache.cacheApi)
testImplementation(projects.backend.infrastructure.cache.valkeyCache)
}
// === Task Configuration ===
// Deaktiviert die Erstellung eines ausführbaren Jars für dieses Bibliotheks-Modul
tasks.bootJar {
enabled = false
}
// Stellt sicher, dass stattdessen ein reguläres Jar gebaut wird
tasks.jar {
enabled = true
archiveClassifier.set("")
}
// Optimiert die Test-Ausführung
tasks.test {
useJUnitPlatform()
// Verbesserte Test-Performance für Testcontainer
systemProperty("testcontainers.reuse.enable", "true")
// Parallelisierung für bessere Performance
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
}