Если да, то это означает, в основном, то, что люди называют моделью чтения, которая не читает только.
В основном исправлены.
Ваши объекты в модели записи имеют открытый интерфейс, содержащий методы записи, но также включают ограниченный интерфейс, который копирует текущее состояние (чтение). У ваших объектов в модели чтения есть открытый интерфейс, который содержит методы чтения, но также включает ограниченный интерфейс, который заменяет текущее состояние (запись).
В середине есть процесс, который использует ограниченный интерфейс для считывания состояния модели записи, преобразует его из структуры данных, оптимизированной для записи, в оптимизированную структуру данных чтения, а затем использует ограниченный интерфейс для записи этого нового состояние считываемой модели.
Я думаю, что полезно ввести концепцию магазина, который отличается от модели. Модель записи вносит изменения в хранилище записи (например, книгу записи), а модель чтения использует состояние, опубликованное хранилищем чтения, для ответа на запросы, а ограниченные интерфейсы используются для связывания двух магазинов; это создает мост между моделью записи и моделью чтения.
Магазин в этом случае может быть только в памяти; Например, в java вы можете обновить хранилище чтения, обновив изменчивый дескриптор до оптимизированной для чтения структуры данных. Методы в модели данных просто захватывают самую последнюю доступную версию структуры данных и продолжают использовать эту копию до тех пор, пока запрос не будет завершен (гарантируя, что модель чтения создает результат запроса, который является внутренне согласованным).
Обычно вы хотите, чтобы процесс в середине был отделен от обновлений до самой модели записи. Это может быть связано с событиями (когда мы видим событие домена, создаем новую копию прочитанных оптимизированных структур данных, измененных этим событием, и публикуем их). Это может быть запланировано (так часто, запрашивать книгу записей для событий домена и обрабатывать те, которые мы еще не видели). Сами события могут содержать все состояние, необходимое для восстановления структур чтения (это, скорее всего, если вы используете источник событий в модели записи), или может быть, что события просто определяют совокупности, которые были изменены, и процесс должен запросите книгу записей, чтобы найти все соответствующие состояния.
Множество вариантов, но они имеют тенденцию следовать одному и тому же базовому шаблону.
Я бы сказал, что простые - как упоминалось в одном из ответов, эти термины - чтение и запись применимы только для публичных интерфейсов. Конечно, внутренние читают из модели записи и записывают в считываемую модель. Как правило, у вас есть агрегированные репозитории, которые читают и записывают модель записи и прогнозы, которые читают и записывают модель чтения. Сама суть каждого обновления в модели записи отправляется в проекции, которые затем могут обновлять прочитанную модель (написав ей!) –