Данные устроены так, что структуры из одних списков ссылаются на структуры из других. Т.е. между ними есть зависимости. При этом хочется, чтобы, в коде, имея экземпляр структуры B, ссылающейся на экземпляр A, можно было бы получить из первого именно экземпляр второго, а не имя, ID или что-то такое. То есть, возникает задача разрешения зависимостей.
Если экземпляр B ссылается на экземпляр A, и этот A на сервере кто-то удалил, то B тоже удалится на сервере. Если кто-то другой после удаления обновит список A и не обновит список B, то целостность у него нарушится. Поэтому, хочется иметь возможность проверки актуальности данных. Узнать, имеем ли мы полностью актуальные данные на данный момент невозможно, но можно придумать термин: что-то вроде "данные актуальны для последнего рефреша". То есть, если у списка A значение счётчика обновлений больше, чем у B, то целостность гарантировать нельзя, и надо обновлять всю цепочку зависимотей B и сам B.
Я продумал систему с такой функциональностью, но только для однопоточного варианта. В реальности же, юзер вполне себе может нажать "refresh" на B, который зависит от A, сразу же нажать Refresh на A, а может даже и что-то там изменить во время работы. Вариантов возникает, как минимум, два: как-то хитро всё это синхронизовавыть и продумывать все возможные варианты, или использовать очередь, но оба варианта имею свои минусы.
Можно описать подробнее, но, пока, вопрос-то вот в чём. Наверняка такая задача уже кем-то решена, не одним способом и даже название имеет. Какое? Подскажите, куда копать. Ну или может кто сталкивался.


