Async processing with sync semantics?