Я работаю над проектом с API, работающим в JVM, и JS-клиентом для доступа к этому API из браузера. Классы данных этих объектов, которые преобразуются в/из JSON, находятся в мультиплатформенном модуле, поэтому я могу повторно использовать код на обеих платформах и случайно не получить несовпадающие атрибуты. На этом этапе было бы неплохо также иметь интерфейс API в этом мультиплатформенном модуле, который затем будет реализован и размещен в JVM, а также реализован и представлен в браузере. Однако все методы этого интерфейса должны быть приостановлены в браузере, поскольку запросы (по крайней мере, с клиентом Ktor, который я использую), в то время как они не должны быть приостановлены в JVM.
Есть ли веская причина против приостановки всех этих методов, даже если я не использую их в JVM? Я знаю, что методы обычно должны приостанавливаться, только если это действительно необходимо, но тогда я буду писать все те же интерфейсы (кроме ключевого слова suspend) дважды, что кажется мне большим количеством ненужного шаблонного кода. Методы, которые без необходимости помечаются как приостанавливаемые, вызываются из контекстов приостановки (я также использую Ktor в JVM), поэтому ограниченное использование не будет проблемой.