Изменения

Перейти к: навигация, поиск
Новая страница: «В [https://habr.com/ru/company/oleg-bunin/blog/543946/ '''третьей статье'''] из серии «'''Как сделать хорошую интегр…»
В [https://habr.com/ru/company/oleg-bunin/blog/543946/ '''третьей статье'''] из серии «'''Как сделать хорошую интеграцию'''» я рассматриваю разные виды взаимодействия - синхронное, асинхронное, реактивное, и связанные с этим вопросы консистентности и транзакций. Рассматривая взаимодействие, важно не ограничиваться рассмотрением обработки одного сообщения, а рассматривать обработку потока входящих сообщений, иначе нельзя оценить производительность, а главное - можно пропустить неожиданные эффекты интерференции между обработкой разных сообщений, или даже одного сообщения, возникшие между запросом и получением ответа. А для этого надо понимать механику асинхронной и реактивной обработки, которая сейчас скрывается синтаксическим сахаром и библиотеками - внутренние очереди и ожидания. Подобно тому, как для эффективной работы с памятью и обеспечением производительности надо понимать алгоритмы сборки мусора, иначе возможны неожиданные эффекты - утечки памяти, неожиданные провалы производительности при включении сборщика и другие. Так и тут, обрабатываемый объект, например, заказ, вполне может измениться между посылкой сообщения и получением ответа за счет асинхронной обработки другого запроса - и это надо учитывать, в отличие от алгоритмов классической процедурной обработки, хотя может казаться, что у вас - единый поток управления.

[https://www.facebook.com/mtsepkov/posts/3812691015454491 Пост на FB]

[[Категория:Статьи]][[Категория:Архитектура]]
{{wl-publish: 2021-02-25 10:49:28 +0300 | MaksTsepkov }}

Навигация