Домен
Архитектура и проектирование
Профиль навыка
Event sourcing, CQRS, saga, pub/sub, message brokers
Ролей
9
где встречается этот навык
Грейдов
5
сформированная дорожка роста
Обязательных требований
0
ещё 45 — необязательные
Архитектура и проектирование
Event-Driven архитектура
17.03.2026
Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.
Таблица показывает, как меняется глубина владения навыком от Junior до Principal.
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (C#/.NET) | Понимает концепцию событийно-ориентированной архитектуры в контексте .NET. Знает C# events и delegates, MediatR для internal events, понимает назначение message brokers (RabbitMQ, Azure Service Bus) в .NET-приложениях. | |
| Backend Developer (Elixir) | Понимает event-driven архитектуру в контексте BEAM VM и OTP. Знает GenServer как основу обработки сообщений в Elixir, различает call и cast, понимает роль Phoenix PubSub для внутренних событий. | |
| Backend Developer (Go) | Понимает концепцию событийно-ориентированной архитектуры и роль Go-каналов как внутреннего механизма передачи событий. Знает отличие pub/sub от point-to-point и зачем нужны message brokers в Go-проектах. | |
| Backend Developer (Java/Kotlin) | Понимает концепцию событийно-ориентированной архитектуры в контексте Java/Spring экосистемы. Знает назначение Spring Events, ApplicationEventPublisher, отличие синхронных и асинхронных событий в Spring Framework. | |
| Backend Developer (Node.js) | Понимает event loop в Node.js как основу event-driven модели. Знает EventEmitter, различает внутренние события приложения и внешние через message brokers. Понимает, зачем используют Redis Pub/Sub и BullMQ в Node.js-проектах. | |
| Backend Developer (PHP) | Понимает концепцию событийно-ориентированной архитектуры и ограничения PHP как request-response языка. Знает Laravel Events/Listeners, Symfony EventDispatcher, понимает зачем PHP-приложениям нужны очереди (Laravel Queue, Symfony Messenger). | |
| Backend Developer (Python) | Понимает концепцию событийно-ориентированной архитектуры и отличие от синхронного request-response. Знает, что такое event bus и зачем нужен pub/sub паттерн в контексте Python-приложений. | |
| Backend Developer (Rust) | Понимает концепцию event-driven архитектуры и роль Rust ownership model для безопасной обработки событий. Знает tokio channels, различает mpsc и broadcast каналы, понимает зачем Rust-сервисам нужны message brokers. | |
| Backend Developer (Scala) | Понимает event-driven архитектуру в контексте Scala/Akka экосистемы. Знает Actor Model, Akka actors как способ обработки сообщений, различает tell и ask паттерны. Понимает назначение Kafka в Scala-проектах. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (C#/.NET) | Разрабатывает event-driven .NET-сервисы с MassTransit или NServiceBus. Реализует consumers с retry-политиками, настраивает dead letter queues, применяет MediatR для CQRS внутри bounded context. Использует Azure Service Bus или RabbitMQ как транспорт. | |
| Backend Developer (Elixir) | Реализует event-driven Elixir-системы с Broadway (Kafka/RabbitMQ/SQS consumers), GenStage для stream processing. Применяет Phoenix PubSub для real-time событий, Oban для background jobs с retry-логикой. Использует BEAM supervision trees для отказоустойчивой обработки событий. | |
| Backend Developer (Go) | Реализует event-driven микросервисы на Go с использованием NATS, Kafka или RabbitMQ. Применяет goroutines и channels для внутренней обработки событий, реализует graceful shutdown consumer-ов, обрабатывает ошибки с retry и backoff стратегиями. | |
| Backend Developer (Java/Kotlin) | Разрабатывает event-driven Java-сервисы с использованием Spring Kafka, Spring AMQP или Spring Cloud Stream. Реализует producer/consumer с обработкой ошибок, настраивает retry-template, dead letter topic. Применяет @KafkaListener с ручным коммитом офсетов. | |
| Backend Developer (Node.js) | Реализует event-driven Node.js-сервисы с BullMQ, RabbitMQ (amqplib) или kafkajs. Обрабатывает события асинхронно с retry-логикой, настраивает dead letter queues. Использует NestJS CQRS-модуль или собственные реализации паттерна pub/sub. | |
| Backend Developer (PHP) | Реализует event-driven обработку в PHP через Laravel Queue / Symfony Messenger с RabbitMQ или Redis. Настраивает workers, retry-политики, dead letter queues. Применяет domain events для декаплинга бизнес-логики в Laravel/Symfony приложениях. | |
| Backend Developer (Python) | Проектирует асинхронные обработчики событий на Python с использованием Celery, RabbitMQ или Redis Streams. Реализует паттерн producer-consumer, обрабатывает ошибки в цепочках событий и настраивает retry-политики. | |
| Backend Developer (Rust) | Реализует event-driven Rust-сервисы с rdkafka, lapin (RabbitMQ) или async-nats. Использует tokio для async обработки событий, реализует graceful shutdown с CancellationToken. Обрабатывает ошибки десериализации событий через serde с proper error types. | |
| Backend Developer (Scala) | Разрабатывает event-driven Scala-сервисы с Akka Streams, Alpakka Kafka или FS2/Cats Effect. Реализует reactive streams с backpressure, обрабатывает события через Akka Persistence для event sourcing. Применяет Scala type system для типобезопасных event contracts. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (C#/.NET) | Проектирует event sourcing с EventStoreDB или Marten в .NET. Реализует saga-паттерн через MassTransit Automatonymous, transactional outbox с EF Core. Обеспечивает exactly-once обработку, проектирует event schema evolution с backward compatibility. | |
| Backend Developer (Elixir) | Проектирует event sourcing на Elixir с Commanded framework, CQRS через отдельные read/write models. Реализует saga-паттерн через Commanded process managers, обеспечивает exactly-once обработку. Использует BEAM distributed erlang для event propagation между нодами. | |
| Backend Developer (Go) | Проектирует высокопроизводительные event-driven системы на Go, используя преимущества concurrency модели языка. Реализует event sourcing, CQRS, saga-паттерны. Обеспечивает exactly-once семантику через идемпотентные обработчики и transactional outbox в Go-сервисах. | |
| Backend Developer (Java/Kotlin) | Проектирует event sourcing и CQRS на Java с использованием Axon Framework или собственных решений на Spring. Реализует saga-паттерн для распределённых транзакций, transactional outbox через Debezium CDC. Обеспечивает ordering гарантии и exactly-once обработку в Kafka Streams. | |
| Backend Developer (Node.js) | Проектирует event sourcing и CQRS на Node.js с учётом однопоточной модели. Реализует saga-оркестрацию через message broker, применяет transactional outbox. Обеспечивает идемпотентность обработчиков, управляет backpressure в event streams при высокой нагрузке. | |
| Backend Developer (PHP) | Проектирует event-driven PHP-системы с Symfony Messenger или Laravel Horizon. Реализует event sourcing через Prooph или Ecotone framework, saga-паттерн для распределённых транзакций. Обеспечивает reliable message processing в условиях stateless PHP (long-running workers, Swoole/RoadRunner). | |
| Backend Developer (Python) | Проектирует event-driven системы на Python с гарантиями доставки (at-least-once, exactly-once). Применяет event sourcing для критичных доменов, реализует saga-паттерн для распределённых транзакций через Celery/Kafka. Обеспечивает идемпотентность обработчиков. | |
| Backend Developer (Rust) | Проектирует высокопроизводительные event-driven системы на Rust, используя zero-copy десериализацию, lock-free очереди. Реализует event sourcing с типобезопасными агрегатами через Rust enum/trait system. Обеспечивает exactly-once обработку, transactional outbox с sqlx. | |
| Backend Developer (Scala) | Проектирует event sourcing и CQRS на Scala с Akka Persistence / Akka Projection или чистыми FP-подходами (FS2 + Doobie). Реализует saga через Akka FSM, обеспечивает exactly-once через Kafka Streams DSL на Scala. Применяет ADT (sealed traits) для типобезопасных доменных событий. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (C#/.NET) | Определяет архитектуру событийных .NET-систем: выбор между MassTransit, NServiceBus, Wolverine. Проектирует integration events между bounded contexts, schema registry для .NET-сервисов. Разрабатывает корпоративные NuGet-пакеты для стандартизации event-driven коммуникации. | |
| Backend Developer (Elixir) | Определяет архитектуру событийных Elixir-систем: выбор между Commanded, EventStore, Broadway для разных use cases. Проектирует multi-node event propagation через BEAM clustering, мониторинг GenStage pipelines. Разрабатывает библиотеки для типобезопасных событий с помощью Elixir behaviours и protocols. | |
| Backend Developer (Go) | Определяет архитектуру событийных систем для Go-платформы: выбор брокеров (NATS vs Kafka), проектирование schema evolution, мониторинг consumer lag. Разрабатывает внутренние Go-библиотеки для стандартизации работы с событиями, обучает команду Event Storming и domain events. | |
| Backend Developer (Java/Kotlin) | Определяет архитектуру событийных Java-систем компании: выбор между Kafka, RabbitMQ, Pulsar, стратегия партиционирования, schema registry (Confluent/Apicurio). Разрабатывает корпоративные starter-ы для стандартизации работы с событиями в Spring Boot микросервисах. | |
| Backend Developer (Node.js) | Определяет архитектуру событийных Node.js-систем: выбор между BullMQ, Kafka, NATS. Проектирует schema validation для событий (JSON Schema, Avro), мониторинг consumer lag. Создаёт internal NPM-пакеты для стандартизации работы с событиями в Node.js-микросервисах команды. | |
| Backend Developer (PHP) | Определяет архитектуру событийных PHP-систем: выбор между Symfony Messenger, Laravel Queue, Ecotone. Проектирует интеграцию PHP-сервисов с Kafka/RabbitMQ, schema validation для событий. Решает специфичные для PHP проблемы: memory leaks в long-running workers, перезапуск при деплое. | |
| Backend Developer (Python) | Определяет архитектуру событийных систем на уровне компании: выбор между Kafka, RabbitMQ, Redis Streams для Python-сервисов. Проектирует schema registry для событий, версионирование контрактов, мониторинг event flow. Обучает команду работе с eventually consistent системами. | |
| Backend Developer (Rust) | Определяет архитектуру событийных Rust-систем: выбор транспорта, проектирование type-safe event schemas через Rust macros и proc macros. Разрабатывает internal crates для стандартизации event handling, обеспечивает compile-time гарантии корректности обработки событий. | |
| Backend Developer (Scala) | Определяет архитектуру событийных Scala-систем: выбор между Akka/Pekko, ZIO, Cats Effect экосистемами для event processing. Проектирует schema evolution для Avro/Protobuf событий, мониторинг actor systems. Разрабатывает библиотеки для стандартизации event-driven коммуникации. |
| Роль | Обязательность | Описание |
|---|---|---|
| Backend Developer (C#/.NET) | Формирует event-driven стратегию для .NET-платформы enterprise-масштаба. Определяет event governance, versioning contracts, migration paths. Проектирует мультирегиональный event mesh с Azure Event Grid / Azure Service Bus. Руководит переходом от WCF/legacy .NET систем к event-driven .NET 8+ микросервисам. | |
| Backend Developer (Elixir) | Формирует стратегию event-driven архитектуры для Elixir-платформы, максимально используя преимущества BEAM VM (let it crash, supervision, distribution). Определяет когда использовать BEAM-native messaging vs external brokers, стандарты событий для polyglot-систем. Руководит масштабированием event processing на BEAM кластере. | |
| Backend Developer (Go) | Формирует стратегию event-driven архитектуры на уровне платформы. Определяет стандарты событий (CloudEvents), governance процессы, инструменты для schema registry и event catalog. Руководит миграцией legacy систем на event-driven подход, обеспечивает observability через distributed tracing событий. | |
| Backend Developer (Java/Kotlin) | Формирует event-driven стратегию для Java-платформы масштаба enterprise. Определяет governance для событий, версионирование схем, миграционные стратегии. Руководит переходом от монолитного Spring-приложения к event-driven микросервисам, проектирует event mesh для мультикластерных инсталляций. | |
| Backend Developer (Node.js) | Формирует стратегию event-driven архитектуры для Node.js-платформы. Решает вопросы масштабирования event consumers с учётом особенностей Node.js (single-threaded), определяет стандарты CloudEvents, проектирует event catalog и governance. Руководит миграцией с монолитного Express/NestJS на event-driven микросервисы. | |
| Backend Developer (PHP) | Формирует стратегию event-driven архитектуры для PHP-платформы. Определяет подходы к масштабированию PHP workers (Kubernetes + Horizon/Supervisor), стандарты событий, governance. Руководит миграцией монолитного Laravel/Symfony на event-driven микросервисы с учётом специфики PHP-экосистемы. | |
| Backend Developer (Python) | Формирует стратегию event-driven архитектуры для всей платформы. Определяет стандарты CloudEvents, governance для событийных схем, миграцию от монолитных Python-приложений к event-driven микросервисам. Проводит архитектурные ревью событийных систем и выстраивает observability для event flows. | |
| Backend Developer (Rust) | Формирует стратегию event-driven архитектуры для Rust-платформы. Определяет баланс между compile-time safety и runtime flexibility для event schemas. Проектирует event mesh с учётом Rust-специфики (ownership, lifetimes в async контексте), руководит миграцией критичных сервисов на event-driven Rust. | |
| Backend Developer (Scala) | Формирует event-driven стратегию для Scala-платформы: FP-first подход (ZIO/CE) vs Actor Model (Akka/Pekko), стандарты событий, governance. Проектирует migration path при смене фреймворков, обеспечивает observability для actor systems и stream processing. Руководит архитектурными решениями для reactive event-driven систем. |