In a nutshell
A message queue is a buffer between the parts of a system that create work (producers) and the parts that do it (consumers). Producers drop messages in and move on instead of waiting — that's async decoupling. The queue absorbs spikes as a backlog; adding more consumers drains it faster, so work happens at the consumer's own pace.