A Systems Design concept that partitions code into a: Producer: creates resources Consumer: consumes resources Essential for Queue that are blocking