Hello there,
We don't have any examples right now outside of our tests, but let me respond to both questions here:
1. In the first case, why mix sync and async? In the C++ API both unary and streaming calls support sync or async APIs. That said, if you want to mark one of the methods async, just derive your service implementation from the WithAsyncMethod_METHODNAME version of the service. I agree that the code expansion can be ugly if we need to mark a lot of methods async.
2. Yes, the sync API provides its own threadpool but you have to provide your own thread(s) for processing in the case of async. If a service mixes sync and async methods, gRPC's own threadpool will invoke the method handlers for the sync methods but you have to use your own thread(s) for processing the async methods.
Thanks and best regards!
-vjpai