decoupled buffer with its own thread