Этот вопрос, вероятно, относится и к другим библиотекам, но с использованием Cassandra в качестве конкретного примера, чтобы убедиться, что я задаю ответный вопрос:
С Kotlin я могу либо использовать асинхронные методы Cassandra, а затем обернуть их интеграцией ListenableFuture или использовать синхронные методы Cassandra и обернуть их использование с помощью метода приостановки и запуска / async.
Я предполагаю, что лучшим методом является использование существующих асинхронных методов библиотеки, предполагающих, что легче избежать взаимоблокировок и быть быстрее, но я размышляю и новичок в сопрограммах.
Является ли это очевидным ответом для людей, более опытных с сопрограммами, или есть конкретные области, где «это зависит»?
Это зависит от внутренних деталей используемой библиотеки и от ваших целей производительности / масштабируемости: