Альтернативы CQRS для архитектуры вертикальных срезов - PullRequest
0 голосов
/ 27 марта 2020

Передо мной находится проект веб-API, который должен быть модернизирован и реализован заново. В этом проекте я хочу использовать архитектуру вертикального среза, потому что многоуровневая архитектура не соответствует нашему функционально-ориентированному подходу. Кроме того, такие вещи, как хранилище, станут очень большими.

Поэтому я начал реализовывать проект с использованием CQRS, но теперь я понимаю, что это тоже не подходит, потому что у нас есть команды, которые должны возвращать DTO. Это делается для того, чтобы избежать нескольких ненужных обращений к базе данных или (как в примере 1) вообще нет доступа к базе данных, но результат меняется после каждого вызова (в отличие от запроса).

/// Example 1: Create access token and return the result directly, no database access (no query possible)
AssetsAccessToken token = await this.createAccessTokenCommandHandler.Handle(accessTokenCommand);

/// Example 2: Create or get available storage space.
AssetsStorageSpace storage = await this.createOrGetStorageSpaceCommandHandler.Handle(storageSpaceCommand);

Существуют ли альтернативные программы архитектуры для вертикальных срезов, которые могут решить эти проблемы?

...