Files
orbit/adapters/outbox/mysql/model.go

24 lines
1.9 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package outbox
import "time"
// Record 是业务数据库中的待发命令;只确认平台受理,不能表示业务执行成功。
type Record struct {
NamespaceID string // NamespaceID 固定目标命名空间,换凭据不能改变归属。
QueueID string // QueueID 固定目标队列,发送前通过当前凭据核对归属。
OperationID string // OperationID 调用方持久化的业务操作ID,同命名空间内唯一。
IdempotencyKey string // IdempotencyKey 由操作ID派生的固定提交键,重报禁止换键。
RequestJSON []byte // RequestJSON 冻结的任务提交正文,保留数字精度,不含凭据。
RequestDigest []byte // RequestDigest 冻结正文的SHA256,发送前重新校验,非平台语义摘要。
State string // State PENDING待发、SENDING领取中、ACCEPTED已受理、REVIEW需核查。
SendCount uint32 // SendCount 持久化领取次数,包含领取后未发HTTP即退出的次数,上限100。
LeaseEpoch uint64 // LeaseEpoch 每次领取递增;旧代次不能更新新代次的本地结果。
WakeAt *time.Time // WakeAt PENDING的下次领取时间或SENDING的租约期限;终结状态为空,UTC微秒。
SendDeadlineAt time.Time // SendDeadlineAt 首次入库后24小时停止新发送,短于平台90天幂等窗口。
LastCode string // LastCode 最近一次稳定分类,不保存HTTP错误正文、凭据或业务秘密。
TaskID *string // TaskID 仅ACCEPTED记录平台任务ID,其余状态为空。
ReceiptJSON []byte // ReceiptJSON 仅ACCEPTED保存原受理回执;不是当前执行状态。
CreatedAt time.Time // CreatedAt 业务事务首次提交命令的UTC时间,微秒精度。
UpdatedAt time.Time // UpdatedAt 最近状态变化的UTC时间,不能替代租约代次。
}