Реализуется система с использованием микросервисов. Чтобы уменьшить количество взаимодействий между микрослужбами, реализованными «на одном уровне» в архитектуре, некоторые микрослужбы будут локально кэшировать копии таблиц, управляемых другими службами. Предполагается, что локально кэшированная таблица (а) часто используется микрослужбой в «режиме чтения» и (б) имеет относительно статическое содержимое (т. е. скорее «таблицу поиска», чем транзакционное содержимое).
Локальные кэши будут поддерживать синхронизацию с помощью обмена сообщениями между службами. Поскольку контент должен быть довольно статичным, это не должно быть серьезной проблемой/рабочей нагрузкой. Однако при запуске микрослужбы существует вероятность того, что локальный кеш устарел.
Я хотел бы реализовать какой-то скользящий номер версии в исходной таблице, чтобы микросервисы с локальным кешем могли проверять этот номер версии, чтобы потенциально избежать события повторной синхронизации.
Есть ли «лучшая практика» для этого подхода? Или «лучшая альтернатива», учитывая, что каждый микросервис поддерживается собственной базой данных (т. е. без общей базы данных)?