Package-level declarations

Types

Link copied to clipboard
@MappedSuperclass
abstract class BaseSaga<S : BaseSaga<S>>(var id: String, var type: String, status: SagaStatus, var payload: String, lastError: String? = null, var startedAt: Instant, completedAt: Instant? = null, updatedAt: Instant = Instant.now(), var version: Long? = null) : Saga<S>

JPA-backed base implementation of the Saga port.

Link copied to clipboard
@NoRepositoryBean
interface BaseSagaRepository<T : BaseSaga<T>> : JpaRepository<T, String> , SagaRepositoryPort<T>

JPA flavor of SagaRepositoryPort. Concrete service repositories extend this interface, and Spring Data JPA generates implementations that simultaneously satisfy the persistence-agnostic port.

Link copied to clipboard
@MappedSuperclass
abstract class BaseSagaStep<T : BaseSagaStep<T>>(var id: Long? = null, var sagaId: String, var stepName: String, status: SagaStepStatus, var payload: String? = null, errorMessage: String? = null, var createdAt: Instant, completedAt: Instant? = null, compensationStepId: Long? = null, var version: Long? = null) : SagaStep<T>

JPA-backed base implementation of the SagaStep port. See BaseSaga for the rationale behind the contract/adapter split — the engine sees an immutable port; this class mutates var fields internally and returns this so Hibernate can dirty-track the update.

Link copied to clipboard
@NoRepositoryBean
interface BaseSagaStepRepository<T : BaseSagaStep<T>> : JpaRepository<T, Long> , SagaStepRepositoryPort<T>

JPA flavor of SagaStepRepositoryPort. See BaseSagaRepository for the port/adapter rationale.

Link copied to clipboard
interface SagaRepositoryPort<S : Saga<S>>

Persistence-agnostic repository port for saga aggregates.

Link copied to clipboard
interface SagaStepRepositoryPort<T : SagaStep<T>>

Persistence-agnostic repository port for saga step records.