no.ks.kes.lib.SagaRepository.kt Maven / Gradle / Ivy
package no.ks.kes.lib
import java.util.*
import kotlin.reflect.KClass
interface SagaRepository : TransactionalRepository, HighWaterMarkedRepository {
fun getSagaState(correlationId: UUID, serializationId: String, sagaStateClass: KClass): T?
fun update(states: Set)
fun getReadyTimeouts(): Timeout?
fun deleteTimeout(timeout: Timeout)
data class Timeout(val sagaCorrelationId: UUID, val sagaSerializationId: String, val timeoutId: String)
sealed class Operation {
abstract val newState: Any?
abstract val commands: List>
data class SagaUpdate(
val correlationId: UUID,
val serializationId: String,
override val newState: Any?,
val timeouts: Set,
override val commands: List>
) : Operation()
data class Insert(
val correlationId: UUID,
val serializationId: String,
override val newState: Any,
override val commands: List>
) : Operation()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy