added abstract async writer (still need to port the mysql writer)