Design DataSource to support async processing

Signed-off-by: Rohan Jain <crodjer@gmail.com>