Comments 4
Хорошая подборка. Единственно, у меня вызывает сомнения, что сервис, который при невозможности выполнить операцию ввиду недоступности "подрядчика", возвращает что попало (нулевой остаток) - это "отказоустойчивость". Эти "чтопопало" потом уйдут в базу, пойдут гулять по бизнес-процессам, и потом сам черт ногу сломит их выкорчевывать и объяснять клиентам, почему такие странные данные в базе. Имхо, если операция не может правильно выполниться, дальше продолжать бизнес-процесс нельзя с некондиционными данными. Исключение - отображение на экране каких-то данных или наличие функционала. Не работает микросервис добавления комментариев и прочей некритической информации и функционала - панель добавления комментариев не должна отображаться.
Посмотрел на первую картинку...
Да ну нафиг эти distributed systems
Буду делать монолит
На самом деле почти все рекомендации также применимы к монолиту. Тем более что монолит можно положить в кластер под балансировщик с несколькими репликами, тогда и вовсе все это к нему будет также относиться. Ну и вопрос выбора монолит/микросервис это уже другая тема, если команда небольшая и серьезного роста в ближайшее время не предвидится, то на микросервисах вы можете сами себя загнать в долгую рутину. А правильно построенный монолит на DDD можно в любой момент начать разделять по микросервисам, если команда выросла и хочется независимости
Лучшие практики создания отказоустойчивых систем