LineageOutbox represents a pending lineage processing task. It is inserted atomically with the main transaction to ensure no lineage work is lost.
| 25 | // LineageOutbox represents a pending lineage processing task. |
| 26 | // It is inserted atomically with the main transaction to ensure no lineage work is lost. |
| 27 | type LineageOutbox struct { |
| 28 | ID int64 `json:"id"` |
| 29 | TransactionID string `json:"transaction_id"` |
| 30 | SourceBalanceID string `json:"source_balance_id,omitempty"` |
| 31 | DestinationBalanceID string `json:"destination_balance_id,omitempty"` |
| 32 | Provider string `json:"provider,omitempty"` |
| 33 | LineageType string `json:"lineage_type"` // "credit", "debit", "both" |
| 34 | Payload json.RawMessage `json:"payload"` |
| 35 | Status string `json:"status"` |
| 36 | Attempts int `json:"attempts"` |
| 37 | MaxAttempts int `json:"max_attempts"` |
| 38 | LastError string `json:"last_error,omitempty"` |
| 39 | CreatedAt time.Time `json:"created_at"` |
| 40 | ProcessedAt *time.Time `json:"processed_at,omitempty"` |
| 41 | LockedUntil *time.Time `json:"locked_until,omitempty"` |
| 42 | Inflight bool `json:"inflight"` |
| 43 | } |
nothing calls this directly
no outgoing calls
no test coverage detected