A programming technique in which each program within an application communicates with the other programs by putting messages on queues.