Форум
Архитектура программного обеспечения
Тема
Как правильно задавать вопросы
B
I
abc
U
X
3
X
3
H1
H2
H3
H4
H5
H6
Asm
C/C++
C#
Erlang
Haskell
IDL
Java
Lisp
MSIL
Nemerle
ObjC
OCaml
Pascal
Perl
PHP
Prolog
Python
Ruby
Rust
SQL
VB
Здравствуйте, gandjustas, Вы писали: G>Здравствуйте, ·, Вы писали: G>·>Здравствуйте, gandjustas, Вы писали: G>>>Пользователь получает ошибку, пытается еще раз - сервис лежит, пользователь плюет на это дело и идет в другой магазин. G>>>В рамках монолита все просто - транзакция. Она атомарная, если что откатится целиком. G>·>Это типичная ошибка "как дОлжно" vs "как оно физически работает". Ты описываешь идеальный мир с единорогами. Всё так, так и должно работать, спору нет, я тоже за всё хорошее и против всего плохого. G>·>А потом внезапно получается, что от момента нажатия кнопочки "хочу купить" до команды на отправку товара со склада - может пройти час, а то и неделя, а то и вообще плюнуть и уйти. Будешь держать распределённую транзакцию открытой? G>Вы процитировали кусок, как-будто не читали предыдущую переписку. G>Там много обсуждали разные задачи и конкретно этот кейс про задачу, которая может быть решена в рамках одной транзакции БД. G>Или вы хотите сказать что вообще не надо опираться на транзакции БД потому что [i]бывают[/i] бизнес-процессы, которые не укладываются в транзакции БД? G>>>В рамках МСА у нас проблема, нет атомарности. Мы вызывали два сервиса в режиме "tell, don't ask", но второй вернул ошибку, а первый нет. Консистентность системы уже нарушена. Остается только вопрос можете ли вы с этим жить. G>·>Это не в рамках МСА, а в реальном физическом мире не бывает атомарности. МСА это делает очевидным и заставляет выражать явно. G>В рамках одного процесса вполне себе бывает. G>>>И самое главное сможете ли вы с этим жить в будущем. G>·>Хошь, не хошь, а придётся. G>Угу, ровно до тех пор пока не появятся требования чтобы этого не было. G>>>Сервис доставки сидит сообщение из очереди и дает сигнал курьеру приехать забрать заказ. G>·>А товара на складе нет, т.к. минуту назад другой курьер забрал последнее для другого заказа. G>То есть вы где-то ранее потеряли транзакционность зарезервировав товаров больше чем есть на складе. G>·>И нам придётся писать извинительное письмо "счастливому" клиенту, оплатить курьеру потраченное время и бензин, откатить платёж по кредитке, оплатив banking fees. G>·>Вот такой он, откат атомарной транзакции. G>Тут дело не в транзакции выдачи со склада, тут вы транзакционность потеряли парой шагов бизнес-процесса ранее. G>>>Но у меня вопрос: а как изначально получилось что у двух команд разные версии? Кто-то же принял такое решение что две команды, должны независимо друг от друга что-то делать. Какая была логика в этом решении? G>·>А как ты себе представляешь перевести огромную систему над которой работают десятки-сотни девов с одной версии на другую? У разных частей системы могут быть разные требования к памяти-процу-сети-диску. G>Ну для команды в 25 человек я делал, ничего катастрофичного, тем более зачастую есть обратная совместимость. G>Но я не знаю проблемы конкретно жабы, что там за проблема перехода с версии на версию. У меня в проекте сейчас работает C# 10-летней давности. Да, неэффективно по сравнению с текущей версией, но работает.
Теги:
Введите теги разделенные пробелами. Обрамляйте в кавычки словосочетания с пробелами внутри, например:
"Visual Studio" .NET
Имя, пароль:
Загрузить
Нравится наш сайт?
Помогите его развитию!
Отключить смайлики
Получать ответы по e-mail
Проверить правописание
Параметры проверки …