Есть несколько серверных приложений на Go, которые будут крутиться на разных серверах, но работать с одними данными. Мне надо, чтобы приложение узнавало сразу об изменениях в ряде таблиц. В частности, например, список пользователей. Т.е. например одно приложение забанило пользователя, а другое сразу об этом узнало и оборвало его подключение.
Всё крутится на AWS. Изначально показалось, что DynamoDB - идеальное решение: сервера могут быть в разных точках мира, оно само всё реплицирует во все регионы доступности, так что данные близко, и с помощью Streams приложения узнают об изменениях. Уже почти всё закодил, но потом понял, что показать все данные (список пользователей для админа, например) с помощью операции Scan - супер дорого. Т.е. даже если один раз в день вынимать все данные для синхронизации, всё равно получается дорого, либо потрать кучу денег и весь provisioned throughput на получение данных, либо вытаскивай по одной строчке в час.
Есть ли какой-то способ это дёшево обойти? Я уже почти смирился с тем, чтобы перейти на Mysql/Postgresql, но есть ли возможность в реальном времени стримить данные? Пишут про
Debezium+Kafka, но это выглядит как решение с чересчур большим оверхедом.
Какие есть идеи, как можно было бы решить проблему?
Заранее спасибо.