У нас есть платформа на основе SOA, которая состоит из множества сервисов и набора приложений, использующих эти сервисы. Каждая служба предоставляет свои функции через клиент, который становится частью хост-приложения и вызывает службу.
Чтобы уменьшить количество сетевых вызовов, я создал структуру клиентского кэша, в которой объекты кэшируются на клиентском уровне. Клиент регулярно опрашивает службу, чтобы проверить, какие объекты были изменены, и соответствующим образом аннулирует кеш. Таким образом, входящие запросы в большинстве случаев обслуживаются из кэша клиента, вызов службы выполняется только тогда, когда кэш клиента не содержит запрошенного элемента.
Моя проблема в том, что если у меня есть 10 разных приложений, которые зависят от конкретной службы/клиента, один и тот же кеш будет реплицироваться во всех приложениях, что кажется слишком избыточным, и каждое приложение будет иметь больший объем памяти.
Каковы мои варианты здесь?