внутри одной БД это реализуемо.
Строго говоря, там точно также нет гарантий. Дисковая подситсема может сбойнуть в любой момент. К тому же сейчас диски часто сетевые...
Так судя по комментам в этом топике, двухфазная фиксация или SAGA - это в принципе НЕ ТРАНЗАКЦИИ, т.е. никакой фактической транзакционности там нет?
За SAGA не скажу, а вот двухфазная фиксация кроме того, что описано в статье, ещё должна, по идеи, так же как это делает отдельно стоящая СУБД, вести журнал логов перед началом транзакции. Возможно распределённый. Именно журнал (вернее его обработка) обеспечивает восстановление после аппаратных ( и в том числе сетевых сбоев). Сам же двухфазный комит гарантирует только то, что не будут записаны (и считаны до записи) несогласованные данные.
Значит, любая система из связанных микросервисов априори не является надежной системой и всегда возможны потери данных?
Да. Мир не идеален. Чем больше звеньев в цепочке отказа, тем выше вероятность этого самого отказа. Как все знают, эта вероятность равна произведению вероятностей каждого элемента. Т е проектируя микросервисную архитектуру вы можете посчитать вероятности отказа всех её составляющих, взяв за основу вероятности отказов аппаратуры или если есть, то более точно статистику отказов. И принять решение, можете вы на такое пойти или лучше оставить монолит в данном конкретном месте. Другое дело, что пока что я вижу по большей части "шапкозакидателльских" писунов микросервисов, которые их делают по принципу "потому что модно". Но как я полагаю, в банках всё же пока остались люди, которые понимают чем это грозит, иначе мы бы и банкоматами пользоваться перестали, потому что никому не охота ежедневно банку доказывать, что у них случился отказ...