Producer-Consumer framework