Я планирую в тесте, как заставить эту архитектуру работать:
http://www.confluent.io/blog/turning-the-database-inside-out-with-apache-samza/
Где все данные хранятся как факты в журнале, но проверки при публикации изменения должны проводиться по таблице. Например, если я отправлю «Создать счет-фактуру с клиентом 1», мне нужно будет проверить, существует ли клиент и другие вещи, а затем, когда проверка проходит, фиксируется в журнале и помещается текущее изменение в таблицу, чтобы таблица имела самая актуальная информация пока у меня есть вся история изменений.
Я мог бы поместить логи в базу данных в виде таблицы (я использую PostgreSql). Однако меня беспокоит масштабируемость этого, кроме того, я хочу подписаться на поток событий от нескольких клиентов, и PG ни одна другая РСУБД, которую я знаю, не позволяла мне делать это без опроса.
Но если я использую Kafka, я беспокоюсь о ACID между обоими хранилищами, поэтому Kafka может получить неправильные данные, такие как откат PG или что-то подобное.
So:
1- Возможно ли обеспечить согласованность между РСУБД и хранилищем журналов ИЛИ 2- Можно ли в режиме реального времени подписаться и настроить PG (или другую РСУБД) для быстрого хранения событий?