Domain events на собеседовании системного аналитика
Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.
Содержание:
Что такое domain event
Past-tense fact, что-то значимое произошло в domain.
Examples: OrderPlaced, PaymentProcessed, UserRegistered.
Свойства:
- Past tense (event = факт, не команда).
- Immutable (не editable после publish).
- Имеет timestamp.
- Имеет unique ID для idempotency.
Naming convention
Past tense. OrderCreated, не CreateOrder (это command).
Specific. «UserUpdated» — слабо. «UserEmailChanged» — лучше.
Domain-driven. Use ubiquitous language. Не tech (RowInserted).
Event payload
Что включить:
- Event ID (UUID для dedupe).
- Aggregate ID (
order_id = 42). - Event time.
- Event-specific data.
- Causation ID (for correlation).
{
"event_id": "evt_abc123",
"event_type": "OrderPlaced",
"occurred_at": "2026-05-07T12:00:00Z",
"order_id": 42,
"customer_id": 99,
"amount": 1500.00,
"items": [...],
"metadata": {
"trace_id": "trace_xyz",
"version": 1
}
}Что не включать: sensitive data в clear text. Большие attachments (use links).
Domain vs integration events
Domain events. Внутри bounded context. Tied к domain.
Integration events. Cross-context. Public contract для outside.
Internal: "OrderPlaced" в Order domain — rich payload, internal model.
External: "OrderCreatedV1" — minimal payload, stable contract for partners.Часто publish both — внутренние используют rich, downstream получают integration.
Schema versioning
Events outlive code. Need versioning strategy.
Approaches:
- Add fields backward-compatible. Old consumers ignore new fields.
- Version в event_type:
OrderPlacedV1→OrderPlacedV2. - Schema registry. Avro / Protobuf with managed evolution.
Avoid breaking changes. Once published — events live forever (replay, audit). Breaking renames / removals — hard.
Связанные темы
- Event-driven архитектура для SA
- DDD для SA
- Webhook design для SA
- 2PC vs Saga для SA
- Подготовка к собесу системного аналитика
FAQ
Это официальная информация?
Нет. Статья основана на работах DDD community, Hohpe «Enterprise Integration Patterns».
Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.