Types of errors that can occur when requesting.
A SpawnError can occur when requesting a Transaction as a new thread may need
spawned if a previous one was lost / invalidated.
The trait that handles the completion of the transaction (DeliveryResult).
complete() is guaranteed to be called once the Transaction is spawned, even
if the thread panics or the future is dropped.