Профиль навыка

CQRS

Command Query Responsibility Segregation: read/write models, eventual consistency

Архитектура и проектирование Event-Driven архитектура

Ролей

10

где встречается этот навык

Грейдов

5

сформированная дорожка роста

Обязательных требований

29

ещё 19 — необязательные

Домен

Архитектура и проектирование

Группа

Event-Driven архитектура

Последнее обновление

17.03.2026

Как использовать

Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.

Чего ждут на каждом уровне

Таблица показывает, как меняется глубина владения навыком от Junior до Principal.

Роль Обязательность Описание
Backend Developer (C#/.NET) Понимает CQRS в .NET экосистеме: знает MediatR для command/query разделения, различает IRequest и INotification. Способен добавить новый query handler с использованием существующих паттернов проекта.
Backend Developer (Elixir) Понимает CQRS в Elixir: знает Commanded framework, понимает как GenServer и process model Elixir naturally поддерживают CQRS. Способен работать с существующим Commanded-based проектом, добавляя простые command handlers.
Backend Developer (Go) Понимает принцип CQRS и его реализацию в Go: знает как структурировать код с разделёнными command и query обработчиками, использует разные структуры для чтения и записи. Способен добавить новый query handler по образцу существующих.
Backend Developer (Java/Kotlin) Понимает CQRS в контексте Java/Spring: знает концепцию разделения Command и Query моделей, различает CommandHandler и QueryHandler. Способен работать с проектами на Axon Framework или Spring CQRS-шаблонах на уровне простых изменений.
Backend Developer (Node.js) Понимает CQRS в контексте Node.js: знает как разделить read и write endpoints, понимает command/query handlers pattern. Способен работать с NestJS CQRS module на уровне простых command и query handlers.
Backend Developer (PHP) Понимает принцип CQRS в PHP: знает разницу между command и query операциями, умеет работать с проектами где используется command bus (Tactician, Symfony Messenger). Понимает зачем разделять запросы на чтение и запись.
Backend Developer (Python) Понимает концепцию разделения моделей чтения и записи: знает зачем нужен CQRS, разницу между command и query. Способен работать с кодовой базой где read и write модели разделены, вносить простые изменения в существующие handlers.
Backend Developer (Rust) Понимает CQRS в контексте Rust: знает как trait system позволяет чётко разделить command и query interfaces. Способен реализовать простой command/query handler используя enum dispatch и trait objects.
Backend Developer (Scala) Понимает CQRS в Scala-экосистеме: знает Akka Persistence для event sourcing, различает Command и Event в typed actor model. Способен работать с существующим Akka-based CQRS кодом на уровне простых изменений.
Роль Обязательность Описание
Backend Developer (C#/.NET) Обязателен Реализует CQRS в .NET проектах: использует MediatR с FluentValidation для command validation, создает отдельные Dapper-based read repositories от EF Core write repositories, настраивает pipeline behaviors для cross-cutting concerns. Применяет Clean Architecture с CQRS.
Backend Developer (Elixir) Обязателен Реализует CQRS в Elixir: использует Commanded для aggregates и process managers, настраивает EventStore для event persistence, создает read projections через Commanded.Projections.Ecto. Применяет Elixir pattern matching для event handling и validation.
Backend Developer (Go) Обязателен Реализует CQRS в Go-проектах: создает отдельные пакеты для commands и queries, использует interface-based dispatch для command/query bus, проектирует read-optimized структуры (denormalized views) отдельно от write models. Применяет Go channels для internal event propagation между моделями.
Backend Developer (Java/Kotlin) Обязателен Реализует CQRS в Java-проектах: использует Axon Framework для command/query separation, настраивает event handlers для обновления read models, применяет Spring Data для read-optimized repositories. Настраивает saga для координации распределённых команд.
Backend Developer (Node.js) Обязателен Реализует CQRS в Node.js проектах: использует NestJS CQRS или custom implementation с TypeScript, создает отдельные read models через Prisma/TypeORM, настраивает event handlers для синхронизации. Применяет Repository pattern с разными реализациями для command и query сторон.
Backend Developer (PHP) Обязателен Реализует CQRS в PHP-проектах: использует Symfony Messenger или Ecotone для command/query bus, создает отдельные Doctrine read models (QueryBuilder + DTO) от write models (Entity + Repository). Настраивает event handlers для синхронизации read моделей.
Backend Developer (Python) Обязателен Реализует CQRS в Python-проектах: разделяет command и query handlers через mediatr-подобные библиотеки, проектирует отдельные read-модели (денормализованные view таблицы или материализованные представления). Обеспечивает eventual consistency между write и read сторонами.
Backend Developer (Rust) Обязателен Реализует CQRS в Rust-проектах: создает отдельные command и query modules с typed handlers, использует sqlx/SeaORM для разных read/write models, применяет tokio channels для event propagation. Обеспечивает compile-time гарантии через generic constraints на command/query types.
Backend Developer (Scala) Обязателен Реализует CQRS в Scala: использует Akka Typed Persistence для event sourced aggregates, настраивает Akka Projection для read models, применяет ZIO + Tapir для typed command/query API. Реализует domain events с sealed trait hierarchies для exhaustive matching.
Роль Обязательность Описание
Backend Developer (C#/.NET) Обязателен Проектирует CQRS-архитектуру для .NET микросервисов: интегрирует с Marten или EventStoreDB для event sourcing, реализует projections через subscription processors, настраивает разные read stores (SQL Server for reports, Redis for real-time). Обеспечивает testability через ArchUnit tests для CQRS boundaries.
Backend Developer (Elixir) Обязателен Проектирует CQRS-архитектуру для Elixir-систем: настраивает multiple read models через Commanded projections, реализует event upcasting для schema evolution, оптимизирует aggregate loading через snapshot strategy. Интегрирует CQRS с Phoenix LiveView для real-time updates.
Backend Developer (Go) Обязателен Проектирует CQRS-архитектуру для Go-микросервисов: реализует event-driven проекции через Watermill или custom event bus, настраивает async projection rebuilds с checkpoint tracking, обеспечивает idempotency проекций. Оптимизирует read models для специфических query patterns с materialized views.
Backend Developer (Java/Kotlin) Обязателен Проектирует CQRS-архитектуру для Java-микросервисов: выбирает между Axon Framework и Eventuate, реализует event sourcing с snapshot optimization, настраивает parallel projections для разных read stores (PostgreSQL, Elasticsearch, Redis). Обеспечивает consistency через idempotent event handlers.
Backend Developer (Node.js) Обязателен Проектирует CQRS-архитектуру для Node.js: интегрирует с EventStoreDB или custom event store, реализует projection rebuilds через event replay, настраивает multiple read stores для разных query patterns. Обеспечивает type safety через TypeScript generics для command/query/event types.
Backend Developer (PHP) Обязателен Проектирует CQRS для PHP-систем: внедряет Ecotone Framework для full CQRS/ES, реализует async projections через RabbitMQ, настраивает read stores (Elasticsearch, Redis) отдельно от write database. Обеспечивает testability через in-memory event store для интеграционных тестов.
Backend Developer (Python) Обязателен Проектирует CQRS-архитектуру для Python-сервисов: определяет границы применимости паттерна, выбирает стратегию синхронизации read models (sync vs async projections), реализует event-driven проекции через Kafka/RabbitMQ. Интегрирует CQRS с event sourcing для полной аудитируемости изменений.
Backend Developer (Rust) Обязателен Проектирует CQRS для high-performance Rust-систем: реализует event sourcing с custom event store, оптимизирует projections через zero-copy десериализацию и parallel processing. Проектирует snapshot strategy для агрегатов и обеспечивает idempotent event handling.
Backend Developer (Scala) Обязателен Проектирует CQRS-архитектуру для Scala-микросервисов: настраивает Akka Cluster Sharding для distributed aggregates, реализует multiple projections (Slick, Elasticsearch, Cassandra), оптимизирует event journal через snapshot strategy и event deletion. Интегрирует с Kafka для cross-service event propagation.
Solutions Architect Обязателен Проектирует архитектуру систем с CQRS. Принимает архитектурные решения (ADR). Оценивает нефункциональные требования.
Роль Обязательность Описание
Backend Developer (C#/.NET) Обязателен Стандартизирует CQRS в .NET организации: выбирает между MediatR, Wolverine и custom implementations, создает NuGet-пакеты для стандартного CQRS setup, проектирует distributed CQRS через MassTransit. Определяет архитектурные guidelines и обучает команды DDD + CQRS + ES.
Backend Developer (Elixir) Обязателен Стандартизирует CQRS в Elixir-экосистеме: определяет architectural boundaries для bounded contexts, проектирует inter-aggregate communication через domain events, создает testing utilities для aggregate и projection verification. Обучает команды DDD + CQRS + ES на Elixir.
Backend Developer (Go) Обязателен Определяет CQRS-стратегию для Go-платформы: стандартизирует patterns для command validation и authorization, проектирует multi-projection architecture для разных read-оптимизированных представлений. Создает internal framework для CQRS с стандартизированным error handling и observability.
Backend Developer (Java/Kotlin) Обязателен Стандартизирует CQRS в Java-экосистеме компании: определяет когда применять full CQRS vs simplified read/write separation, проектирует инфраструктуру для event store (Axon Server vs EventStoreDB vs custom), стандартизирует testing strategy для CQRS компонентов. Обучает команды DDD + CQRS.
Backend Developer (Node.js) Обязателен Стандартизирует CQRS в Node.js экосистеме: создает internal library для CQRS с middleware support, проектирует event catalog с versioning, определяет testing patterns для aggregates и projections. Внедряет distributed CQRS через message broker для cross-service consistency.
Backend Developer (PHP) Стандартизирует CQRS в PHP-экосистеме: определяет architectural decision records для CQRS adoption, проектирует стратегию миграции существующего CRUD-кода на CQRS, создает внутренние Composer-пакеты для стандартизации. Обучает PHP-команды DDD-подходам с CQRS.
Backend Developer (Python) Обязателен Определяет стратегию применения CQRS в организации: стандартизирует подходы к разделению read/write, проектирует infrastructure для projection rebuilds, внедряет мониторинг consistency lag между моделями. Обучает команды когда CQRS оправдан и как избежать over-engineering.
Backend Developer (Rust) Обязателен Определяет CQRS-архитектуру для Rust-платформы: создает CQRS framework с derive macros для автоматической генерации command/query handlers, проектирует event schema management с serde и schema validation. Стандартизирует testing через property-based tests для aggregates.
Backend Developer (Scala) Обязателен Стандартизирует CQRS в Scala-экосистеме: выбирает между Akka Persistence и ZIO-based solutions (zio-entity), проектирует multi-bounded context architecture, создает abstractions для testable CQRS. Определяет migration strategy от Akka Classic к Akka Typed для CQRS модулей.
Solutions Architect Обязателен Определяет архитектурную стратегию продукта с CQRS. Формирует architecture guidelines. Проводит architecture review.
Роль Обязательность Описание
Backend Developer (C#/.NET) Формирует enterprise CQRS стратегию для .NET: проектирует платформу для self-service CQRS модулей с event store, определяет governance для event schema evolution и cross-domain event contracts. Влияет на архитектуру организации через внедрение CQRS/ES для критических доменов.
Backend Developer (Elixir) Формирует CQRS стратегию для Elixir-платформы: проектирует distributed CQRS с BEAM clustering, определяет event sourcing governance, разрабатывает подходы для cross-cluster event replication. Влияет на развитие Commanded/EventStore ecosystem через contributions и architectural guidance.
Backend Developer (Go) Формирует архитектурное видение CQRS для распределённых Go-систем: проектирует cross-service CQRS с federated queries, определяет стратегию для eventually consistent read models в multi-region deployment. Разрабатывает подходы к testing и debugging CQRS-систем в production.
Backend Developer (Java/Kotlin) Формирует enterprise CQRS стратегию: проектирует multi-bounded context CQRS с shared event bus, определяет governance для event schema evolution, разрабатывает платформу для self-service CQRS модулей. Влияет на архитектурные решения по adoption CQRS в legacy Java-системах.
Backend Developer (Node.js) Формирует архитектурное видение CQRS для Node.js платформы: проектирует event-driven архитектуру с CQRS как core pattern, определяет стратегию для real-time projections через WebSocket/SSE. Влияет на архитектурные решения по adoption CQRS в организации с учётом Node.js async nature.
Backend Developer (PHP) Формирует архитектурную стратегию CQRS для PHP-платформы: определяет где CQRS оправдан в контексте PHP process model, проектирует интеграцию PHP CQRS модулей с event-driven микросервисами на других языках. Влияет на развитие CQRS-экосистемы в PHP (Ecotone, Broadway).
Backend Developer (Python) Формирует архитектурную стратегию CQRS на уровне платформы: проектирует инфраструктуру для multi-tenant CQRS с изолированными read stores, определяет паттерны для cross-service queries и data mesh интеграцию. Влияет на архитектурные решения по decomposition монолитов с использованием CQRS как переходного паттерна.
Backend Developer (Rust) Формирует стратегию CQRS для распределённых Rust-систем: проектирует multi-region event store с conflict resolution, определяет архитектуру для cross-service CQRS с gRPC-based event propagation. Влияет на развитие Rust CQRS/ES экосистемы через open-source contributions.
Backend Developer (Scala) Формирует CQRS стратегию для Scala-платформы: проектирует event-driven architecture с CQRS как core pattern, определяет event schema governance с Avro/Protobuf, разрабатывает platform для self-service aggregate creation. Влияет на развитие Scala CQRS экосистемы (Akka, ZIO).
Solutions Architect Обязателен Определяет архитектурную стратегию организации. Проектирует reference architectures. Формирует architecture governance.

Сообщество

👁 Следить ✏️ Предложить изменение Войдите, чтобы предлагать изменения
📋 Предложения
Пока нет предложений для CQRS
Загрузка комментариев...