There are also ways out of vendor lock-in. Alternator comes to mind as a way of migrating DynamoDB workloads out to other cloud vendors or your own servers: https://docs.scylladb.com/using-scylla/alternator/
There's none in the standard library, but e.g. Seastar already has coroutine support implemented for its future<>s and it works really well - the code looks clearer and in many cases it reduces the number of allocations to 1 (for the whole coroutine frame).