- batch size is not static anymore
- non-blocking receive