use async module for harvester to not block