Files
msgexchange-v2/src/main/kotlin/com/gzzn/omms/msgexchange/domain/MsgEvent.kt
T

28 lines
1.0 KiB
Kotlin
Raw Normal View History

package com.gzzn.omms.msgexchange.domain
/** MSG_EVENT 事件形态(§7.3)。 */
enum class EventType { UPSERT, TOMBSTONE }
/** MSG_EVENT 投递状态(outbox 状态机)。 */
enum class EventStatus { PENDING, SENT, DEAD }
/**
* MSG_EVENToutbox,§3.2):状态、变更、删除通知。
* KAFKA_SCHD 整态 + KAFKA_MSG 变化通知;TOMBSTONE 仅在 ACTIVE→DELETED 时
* 与删除同事务登记(§7.3),投递失败持续重试。
*/
data class MsgEvent(
val eventId: Long? = null,
val target: String,
val partitionKey: String, // 恒为 FLID
val eventType: EventType = EventType.UPSERT,
val stateVersion: Long = 0, // 发布时航班版本;Dispatcher 合并同 FLID 未发事件取最新(§7.3)
val payloadJson: String,
val state: EventStatus = EventStatus.PENDING,
val attempts: Int = 0,
val nextAttemptAt: java.time.Instant? = null,
val errorClass: ErrorClass? = null,
val lastError: String? = null,
val createdAt: java.time.Instant = java.time.Instant.now(),
)