Так это ваше приложение не может.
Если вы не можете это не значит что это невозможно.
А почему вы решили что все данные должны быть консистеными?
На самои деле таких критических данных которые должны быть консистентными всегда и везде не так чтобы много.
Я даже не могу с ходу назвать пример где без этого не обойтись. Мы держим в голове что наш атомарный инсерт одной строки\документа всегда консистентен (благодоря транзакциям если поддерживаются или оптимистичному локу если нет).
Вы всегда если база то начинаете про SQL почемуто
А что вы будуте делать если у вас DynamoDb или BigTable нфпример?
Это для вас данные мертывые
а для бизнес аналитика могут быть на весь золота через пару лет.
Мне вот интересно, почему вы всегда говорите об идеальных вещах? Как по мне всегда стоит учитывать человеческий фактор. Какойнить условный Вася программист забыл написать транзакцию, и некоторое время все шло хорошо. Но в один прекрасный момент, когда процесс убился на той самой забытой транзакции,хоба, и у вас уже неконсистентные данные. Ладно бы инсерт, если это будет удаление - вот вам и оставшийся мусор.
Про реляционки. Потому что это самый частый кейс. Нет смысла рассматривать конкретные решения под общие случаи.
Про мертвые данные. Если они вам так нужны, то можно архивировать где-то отдельно. Держить их в основной бд нет смысла. Это затратно.