Simplify producer API, and adding async example with both producer and consumer