OptionalchannelWhich channel answered. Filled in by the notifier.
OptionalidThe provider's own id for the message, when it gives one.
OptionalreasonWhy, in words a person reading a log can act on.
OptionalretryableWhether trying again could work.
The distinction a channel owes its caller: a provider being down is retryable, an address that does not exist never will be, and retrying it forever is how a queue fills up with work that cannot succeed.
Whether it went out.
What a channel answers.
It answers, and never throws, for everything it can foresee: a missing address, a provider refusing, a rate limit. A channel that throws is treated as retryable, because a throw is an adapter bug and burying a whole channel's traffic the day a provider client changes its errors would be worse than one retry too many.