Есть такая теорема – BAC (Backup, Availability, Consistency), по аналогии с CAP. Она звучит так: при резервном копировании всей системы микросервисов нельзя одновременно обеспечить и доступность, и согласованность. Чтобы раскрыть суть, стоит посмотреть на бэкапы с позиции архитектурных компромиссов: ◼︎ Бэкапить сервисы по отдельности – но тогда при восстановлении данные могут быть несогласованными (например, один сервис сохранил событие, а другой нет) ◼︎ Согласованный бэкап – все сервисы бэкапятся одновременно, но в это время система становится недоступной для изменений ◼︎ Не делать резервных копий – сохраняются доступность и согласованность, но без бэкапов И даже в такой, казалось бы, банальной вещи, как бэкапы для микросервисов все немного усложняется, в итоге: ◼︎ Приходится выбирать, где важнее согласованность, а где доступность (и обосновывать это) ◼︎ Выбирать стратегии под конкретные сервисы, например, где нужна строгая согласованность (вроде платежей) - кооринированные бэкапы, а где согласованность не так критична, вроде ленты новостей, условных лайков или статитики просмотров, – индивидуальные бэкапи + реплей событий. Поделитесь в комментариях, как бэкапите решения на MSA, с какими проблемами сталкиваетесь, как решаете Почитать подробнее тут: https://design.inf.usi.ch/sites/default/files/biblio/bac-theorem.pdf