async batch processing