I know the Stellar network can be used for exchanging all types of assets - Lumens, USD, apples, whatever.
When exchanging non-Lumen assets between accounts, the network doesn't actually perform the exchange, but the transaction is recorded on the blockchain. Is this correct? That is, the transaction on the Stellar network basically serves as a receipt/invoice/proof that one party agrees to owe the other party something? The receiving party should trust that the other party will indeed go through with this in a tangible way? What enforces this? If the receiver is not satisfied, can they rescind the transaction at any time?
When transacting with the native asset (i.e., Lumens), the Stellar network will take care of transferring the asset from one account to another? If my understanding in #1 is correct, then when trading Lumens, will one party immediately receive the Lumens, while the other party has the assurance (through the recorded transaction) that the sender will go through with the exchange?
I guess my main concern is, when dealing with non-native assets, what makes the transactions enforceable outside of the Stellar network?