Интересно, а я один стараюсь разграничивать синхронность/асинхронность взаимодействия от процесса?
Синхронный - один объект отправляет запрос и обязательно получает что‑то в ответ от другого объекта. Как пример, взаимодействие браузера с сервером при первичной отрисовке страницы. При этом в классическом понимании синхрона отправитель именно ждёт ответ и обычно другие функции заблокированы.
Асинхронный - один объект шлет запрос другому, но ответ не получает. Как пример, работа очередей или топиков: один объект положил данные в топик, а второй объект забрал эти данные, но никакой отбивки первому объекту при этом не пришло.
По идее это очевидная штука, но почему-то я нигде особо не встречаю информации именно в таком ключе. Есть отдельно инфо про технологии во взаимодействии, а есть инфо про процессы.
Попробую объяснить:
Все прекрасно знают, что есть условный REST, который считается синхронным. Есть очереди, которые принято считать асинхронными. И сейчас я не хочу вдаваться в технические нюансы, за счет которых можно сделать и рест асинхронным, да и очереди условно синхронными. Хочу поговорить о том, что есть еще синхрон/асинхрон бизнес-процесса.
Что это означает?
Ну, например, на асинхронных очередях можно построить синхронный бизнес процесс за счет создания 2 потоков для запроса и ответа. А можно сделать бизнес процесс с рестом, где ответом будет подтверждение о получении запроса, а не реальный ответ с бизнес-смыслом. Второй процесс я бы назвал асинхронным соответственно.
#быстростатья
Post #257
684
- 👍 9
- ❤ 4
- 🔥 4