decoupled retrieve body access into producer/consumer