Есть некоторый враппер который определяет будет ли тут блокирующее или неблокирующее взаимодействие. Вот Пользователь апи просто передает этот враппер. Уже пользователь описывает КАК он хочет чтобы проводились операции, а контракт обязует имплементации делать ТО, ЧТО прописано в контракте