Тут буквально за пару недель в 3 популярных сервисах столкнулся с неактуальностью данных, а после знакомства с микросервисами понял, что такая вещь там нормально.
у тинькова в приложении при переводе на скрине перевода текущая сумма — сумма перевода != остатку (не учитывалась сумма последней операции)
у озона в заказе неверно показывалась дата доставки на странице заказов, но если перейти в страницу заказа самого то всё корректно показывалось
на sports.ru вчера вот вчера матч Ростов — Зенит показывал 0 — 1 но показывались голы как Зенита так и Ростова, но гол Ростова был отменен, но он висел больше 10 минут на странице даже после ф5.
собственно, получается пользователи думают баги, а по факту просто надо к этому привыкать?
Здравствуйте, busk, Вы писали:
B>Тут буквально за пару недель в 3 популярных сервисах столкнулся с неактуальностью данных, а после знакомства с микросервисами понял, что такая вещь там нормально. B>у тинькова в приложении при переводе на скрине перевода текущая сумма — сумма перевода != остатку (не учитывалась сумма последней операции) B>у озона в заказе неверно показывалась дата доставки на странице заказов, но если перейти в страницу заказа самого то всё корректно показывалось B>на sports.ru вчера вот вчера матч Ростов — Зенит показывал 0 — 1 но показывались голы как Зенита так и Ростова, но гол Ростова был отменен, но он висел больше 10 минут на странице даже после ф5.
B>собственно, получается пользователи думают баги, а по факту просто надо к этому привыкать?
Согласованность в итоге, а не ACID. Наступление итога зависит от быстродействия. Я тоже с подобным где-то сталкивался.
Здравствуйте, busk, Вы писали:
B>Тут буквально за пару недель в 3 популярных сервисах столкнулся с неактуальностью данных, а после знакомства с микросервисами понял, что такая вещь там нормально.
Типично для микросервисов, но "нормальным" это сложно назвать.
B>у тинькова в приложении при переводе на скрине перевода текущая сумма — сумма перевода != остатку (не учитывалась сумма последней операции)
В этом случае я не думаю что микросервисы виноваты. Проблема на уровне UI, операция перевода не вызывает обновление остатков на другой странице интерфейса.
У меня было круче. Приложение сбера без перезапуска не обновляло остаток вообще после внесения денег через банкомат. Тут уже только на UI бащ
B>у озона в заказе неверно показывалась дата доставки на странице заказов, но если перейти в страницу заказа самого то всё корректно показывалось
А вот это точно микросервисы.
B>на sports.ru вчера вот вчера матч Ростов — Зенит показывал 0 — 1 но показывались голы как Зенита так и Ростова, но гол Ростова был отменен, но он висел больше 10 минут на странице даже после ф5.
Тут тоже вряд ли микросервисы, скорее просто косяк UI.
B>собственно, получается пользователи думают баги, а по факту просто надо к этому привыкать?
Это и есть баги
Здравствуйте, busk, Вы писали:
B>Тут буквально за пару недель в 3 популярных сервисах столкнулся с неактуальностью данных, а после знакомства с микросервисами понял, что такая вещь там нормально.
Такие вещи в распределенных системах неизбежны. Хотя с бытовой точки зрения и ненормальны.
B>у тинькова в приложении при переводе на скрине перевода текущая сумма — сумма перевода != остатку (не учитывалась сумма последней операции) B>у озона в заказе неверно показывалась дата доставки на странице заказов, но если перейти в страницу заказа самого то всё корректно показывалось
Надо разбираться с каждым случаем отдельно.
Может быть и кривой дизайн сервисов и их взаимодействий.
Могут быть баги на UI. Те же даты, например, могут "поплыть" просто от смены часового пояса.
B>на sports.ru вчера вот вчера матч Ростов — Зенит показывал 0 — 1 но показывались голы как Зенита так и Ростова, но гол Ростова был отменен, но он висел больше 10 минут на странице даже после ф5.
Думаю, информацию на сайте обновляет живой человек и в данном случае он просто отвлёкся.
B>собственно, получается пользователи думают баги, а по факту просто надо к этому привыкать?
Это не всегда баги.
Баг — это несоответствие реализации требованиям спецификации вашей системы (ну или системные сбои типа падения приложения с Out of memory).
В распределенных системах (с ненадежными хостами и сетями) невозможно добиться абсолютной согласованности за конечное время.
Поэтому никто в здравом уме не будет стремиться реализовать стопроцентную согласованность. И поэтому неизбежны операции, где согласованность теряется.
G>У меня было круче. Приложение сбера без перезапуска не обновляло остаток вообще после внесения денег через банкомат. Тут уже только на UI бащ
Оно и сейчас не обновляет.
Делаю перевод. На странице с переводами сумма скорректирована.
Перехожу на главную страницу — сумма до перевода.
Нажимаю обновить страницу.
Тогда становится правильная сумма.
B>>собственно, получается пользователи думают баги, а по факту просто надо к этому привыкать? G>Это и есть баги
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, ·, Вы писали:
·>Более точно — есть ровно 2.9999999999978 проблем: аннулирование кэша, придумывание названий, ошибка на единицу и арифметика с плавающей точкой.
Проблема с арифметикой с плавающей точкой решается легко: её можно и вовсе не использовать (если вы не на JS, конечно, программируете).
Здравствуйте, busk, Вы писали:
B>Тут буквально за пару недель в 3 популярных сервисах столкнулся с неактуальностью данных, а после знакомства с микросервисами понял, что такая вещь там нормально. B>у тинькова в приложении при переводе на скрине перевода текущая сумма — сумма перевода != остатку (не учитывалась сумма последней операции) B>у озона в заказе неверно показывалась дата доставки на странице заказов, но если перейти в страницу заказа самого то всё корректно показывалось B>на sports.ru вчера вот вчера матч Ростов — Зенит показывал 0 — 1 но показывались голы как Зенита так и Ростова, но гол Ростова был отменен, но он висел больше 10 минут на странице даже после ф5.
B>собственно, получается пользователи думают баги, а по факту просто надо к этому привыкать?
Тут в мясной лавке еще более интересное наблюдал. Касса отправляет платеж в банк и надолго зависает при каждой попытке отправить, а у покупателя в банковском приложении платеж показывается. Т.е. запрос в банк ушел, ответа не приходило.
Здравствуйте, Qulac, Вы писали:
Q>Здравствуйте, busk, Вы писали:
Q>Касса отправляет платеж в банк и надолго зависает при каждой попытке отправить, а у покупателя в банковском приложении платеж показывается. Т.е. запрос в банк ушел, ответа не приходило.
Тут больше похоже на проблемы со связью. Платёжный терминал, в случае, если не получил ответ на запрос, должен посылать запрос на отмену транзакции. А по окончании операционного дня терминал должен послать транзакцию свеки итогов.
Здравствуйте, AleksandrN, Вы писали:
AN>Здравствуйте, Qulac, Вы писали:
Q>>Здравствуйте, busk, Вы писали:
Q>>Касса отправляет платеж в банк и надолго зависает при каждой попытке отправить, а у покупателя в банковском приложении платеж показывается. Т.е. запрос в банк ушел, ответа не приходило.
AN>Тут больше похоже на проблемы со связью. Платёжный терминал, в случае, если не получил ответ на запрос, должен посылать запрос на отмену транзакции. А по окончании операционного дня терминал должен послать транзакцию свеки итогов.
Да должен добавить в очередь отправки. Тут возможно пуш не приходил.
Здравствуйте, busk, Вы писали: B>собственно, получается пользователи думают баги, а по факту просто надо к этому привыкать?
Особенность распределённых систем. Гуглить "теорема CAP" и "теорема PACELC". В описанных случаях — похоже, что данные записались в одну реплику БД, прочитались из другой и было большое отставание репликации.