1. Общие вопросы про Event-Driven архитектуру
- Что такое Event-Driven архитектура (EDA) и какие проблемы она решает?
- Назовите ключевые компоненты Event-Driven системы.
- Чем Event-Driven архитектура отличается от классической Request-Response архитектуры?
- Какие преимущества и недостатки у Event-Driven архитектуры?
- Приведите примеры приложений или бизнес-кейсов, для которых Event-Driven архитектура наиболее эффективна.
📌 2. События (Events)
- Что такое событие (event)? Дайте примеры событий в реальных приложениях.
- Чем событие (event) отличается от команды (command) и запроса (request)?
- Что такое Event Notification, Event-Carried State Transfer и Event Sourcing? В чём их различие?
- Как обеспечить надежную доставку событий в Event-Driven системах?
📌 3. Event Sourcing
- Что такое Event Sourcing и для чего он используется?
- Каковы преимущества и недостатки Event Sourcing?
- Как вы организуете хранение и обработку событий при использовании Event Sourcing?
- Как в Event Sourcing организован процесс восстановления состояния системы из событий?
📌 4. CQRS (Command Query Responsibility Segregation)
- Что такое CQRS, и почему он часто используется совместно с Event-Driven архитектурой?
- Какие преимущества и сложности есть при использовании CQRS?
- Как CQRS помогает масштабировать приложения?
📌 5. Паттерны и интеграция
- Какие основные паттерны проектирования используются в Event-Driven системах?
- Что такое Publish/Subscribe (pub-sub) модель? Приведите пример реализации.
- Чем брокер сообщений (message broker) отличается от событийного журнала (event log)?
- Как интегрировать Event-Driven архитектуру с legacy-системами?
📌 6. Технологии и инструменты
- Какие технологии и инструменты используются для реализации Event-Driven архитектуры?
- Почему Apache Kafka часто выбирают в качестве брокера сообщений для EDA?
- Чем Kafka отличается от RabbitMQ или других очередей сообщений (message queues)?
- Как выбрать подходящий инструмент (Kafka, RabbitMQ, AWS Kinesis и др.) для конкретной задачи?
📌 7. Надёжность и доставка событий
- Какие бывают подходы к доставке сообщений: Exactly-once, At-least-once и At-most-once?
- Какие методы вы используете, чтобы гарантировать обработку каждого события?
- Как обрабатывать повторные сообщения (повторы событий) в Event-Driven системах?
📌 8. Производительность и масштабируемость
- Как организовать масштабирование Event-Driven приложений?
- Какие проблемы производительности могут возникнуть в Event-Driven архитектурах и как их решать?
- Как минимизировать задержку (latency) обработки событий?
📌 9. Мониторинг, логирование и отладка
- Как организовать мониторинг в Event-Driven системах?
- Какие метрики необходимо отслеживать при работе с потоками событий?
- Как вести логирование событий, чтобы эффективно диагностировать проблемы?
- Каковы лучшие практики отладки Event-Driven приложений?
📌 10. Безопасность и управление доступом
- Как обеспечивать безопасность и разграничение доступа в Event-Driven архитектурах?
- Какие подходы используются для защиты и шифрования событийных потоков?
- Какие риски безопасности могут возникнуть при использовании событийных систем?
📌 11. Реализация и практический опыт
- Опишите, какие проблемы вы решали с помощью Event-Driven архитектуры на практике.
- Какие были ключевые ошибки или сложности при внедрении Event-Driven подхода в вашем опыте?
- Как вы выбираете границы доменов и контекстов при проектировании Event-Driven систем?