Встречается на собеседованиях • сегодня

Как связан паттерн Event Sourcing с паттерном CQRS

Event Sourcing и CQRS часто используются вместе, но они решают разные задачи.

Event Sourcing — это хранение состояния приложения как последовательности событий. Вместо сохранения текущего состояния, сохраняются все изменения (события), которые к нему привели.

CQRS — это разделение моделей чтения (Query) и записи (Command). Запись (Command) изменяет состояние, а чтение (Query) — только возвращает данные.

Связь:

  • Event Sourcing естественно ложится на Command-часть CQRS, так как команды генерируют события.
  • Query-часть может использовать оптимизированные проекции (read models) на основе событий для быстрого чтения.

Пример:

typescript
// Command-сторона (Event Sourcing)
class Order {
  apply(event: OrderEvent) { /* сохраняем событие */ }
  placeOrder() {
    this.apply(new OrderPlacedEvent(/* данные */));
  }
}

// Query-сторона (отдельная модель)
class OrderReadModel {
  getOrders() { /* возвращает данные из оптимизированной БД */ }
}

Использование вместе дает масштабируемость и гибкость, но увеличивает сложность системы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы