MessageStatus and Ledger persistence
stateDiagram-v2 [*] --> Incoming: recordIncoming [*] --> Queued: recordOutbound Queued --> Sent: applyOutboundStatus Queued --> Failed: applyOutboundStatus Sent --> Delivered: remote receipt or proof Sent --> Failed: terminal failure Failed --> Queued: markRetryQueued
Independent persistence results
Durable means it has been persisted;Deferred means it has entered a fixed depth pending write;Rejected means it has not been accepted by the ledger. They are not MessageStatus.