Существуют ли какие-либо шаблоны для смешивания систем конечной согласованности с устаревшими системами ACID?
Я хочу хранить данные в некоторых (как минимум двух) устаревших системах на мейнфрейме, которым нужны ACID-подобные транзакции. Эти базы данных мэйнфреймов (назовем их OldWorld) работают под управлением одного и того же диспетчера транзакций в одном и том же процессе, поэтому согласованность систем мэйнфреймов не представляет проблемы.
У меня есть диспетчер транзакций, который может обрабатывать XA-транзакции с мейнфреймом-tm и реляционной базой данных с поддержкой ACID в среде, отличной от мэйнфрейма (давайте назовем ее NewWorld). Но я не хочу использовать XA-транзакцию, потому что она часто вызывает проблемы с длительными блокировками на стороне мейнфрейма, и во многих случаях мне не нужны все ACID-функции для обоих миров. Мне всегда нужен согласованный мэйнфрейм (все данные в Старом мире согласуются внутри Старого мира). Система NewWorld может обрабатывать несогласованные данные (несогласованность между новыми и старыми), когда она считывает данные со стороны мэйнфрейма. Операции, которые используются для хранения данных в OldWorld, просты и сохраняют «операции только для добавления», которые не могут выйти из строя функционально (могут выйти из строя технически, но это всегда должен быть временный сбой).