SQS is a messaging queue, store and forward pattern - useful to build distributed / decoupled applications.
It does not require to set up a message broker.
Standard queue
items are pushed to queue in order, but applications polling or receiving records might get them not in the exact order ( Best-Effort Ordering) and occasionally a copy of the message could be delivered ( At-Least-Once delivery )
FIFO Queue -
First in First Out delivery - order in which messages are sent and received is strictly preserved
Exact-once processing - no duplicates
One of the main difference between Standard and FIFO, which also explain the differences in ordering and delivery, is that Standard Queues support Unlimited throughput - unlimited transactions per second (TPS) - while FIFO is High Throughput and supports up to 300 messages per second ( send or receive or delete all counted together) - you can get to 3000 if you batch 10 messages per operation.
DLQ ( Dead Letter Queue )
is not really a different type of Queues available in SQS ( like Standard or FIFO ) rather a normal Queue which is in charge of handling message failures.
Messages that failed to be processed from a queue can be pushed to a DLQ to be isolated , analysed ( and eventually reprocessed ).
DLQ must be of same type of origin queue sending failed messages