Git - это, по сути, реализация хранилища событий, в котором хранящиеся данные представляют собой файлы в структуре каталогов.Известно, что надежно решают проблемы:
- Сохранение истории изменений
- Передача минимальных данных клиенту для получения самых последних данных
- Может откат к предыдущему состоянию
Можно создать хранилище событий, написав обертку над Git.
Предположим, мои бизнес-потребности заключаются в том, что мне нужно хранить данные клиентов, которые могут быть представлены в формате JSON.Данные могут быть изменены одной или несколькими службами в системе.Я мог бы иметь выделенную Git-репо Customer-Data с плоской структурой и файлами с именем {customer-id} .json.Когда служба изменяет данные, она включает полезное сообщение о коммите.
Это решение не масштабируется (если слишком много клиентов с слишком частыми изменениями, удаленная служба Git, например GitHub, будет засыпана запросами и дросселем), но при условии, что я знаю, что у меня будет ~1000 клиентов и изменения данных 1 на ~ 10 часов на клиента, есть ли другие проблемы с решением?