Ну и если поход в базу/диск - это единственная блокирующая операция на всю программу, сделать там колбэк гораздо проще, чем городить асинхронный фреймворк на самом деле. И я не агитирую за синхронность не в коем случае, я просто объясняю, что надо понимать, что и зачем делается