А какие виды CQRS вы знаете?
Тезисы
Казалось бы, про CQRS всё уже давно сказано — но мне есть что добавить!
Если спросить backend разработчика про CQRS — конечно он скажет, что знает о таком подходе. Но если спросить о подробностях — то получим много различных вариантов и трактований.

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

Так же обсудим самые популярные вопросы и заблуждения CQRS:
  1. Могут ли команды возвращать значения. Если нет — то почему?
  2. Могут ли query писать логи?
  3. Что делать, если две команды должны использовать общую логику?
  4. Поможет ли CQRS при росте нагрузки на сервис?
Примеры кода будут на C#, но общие принципы не зависят от конкретного языка или платформы. А для тех, кто пишет на Java/Kotlin, в конце доклада будет приятный бонус.

На мой взгляд, основная ценность для слушателей — показать, что под термином CQRS часто понимают совершенно разные реализации. И это нормально, просто важно об этом помнить.

Я покажу свой рецепт использования общей логики между разными handlers (об этом в докладах обычно ничего не говорят). Для .NET обсудим библиотеку MediatR. И её порт на java в виде PipelinR (тот редкий случай, когда либу портировали .NET -> Java, а не наоборот).
Казалось бы, про CQRS всё уже давно сказано — но мне есть что добавить!
Если спросить backend разработчика про CQRS — конечно он скажет, что знает о таком подходе. Но если спросить о подробностях — то получим много различных вариантов и трактований.

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

Так же обсудим самые популярные вопросы и заблуждения CQRS:
  1. Могут ли команды возвращать значения. Если нет — то почему?
  2. Могут ли query писать логи?
  3. Что делать, если две команды должны использовать общую логику?
  4. Поможет ли CQRS при росте нагрузки на сервис?
Примеры кода будут на C#, но общие принципы не зависят от конкретного языка или платформы. А для тех, кто пишет на Java/Kotlin, в конце доклада будет приятный бонус.

На мой взгляд, основная ценность для слушателей — показать, что под термином CQRS часто понимают совершенно разные реализации. И это нормально, просто важно об этом помнить.

Я покажу свой рецепт использования общей логики между разными handlers (об этом в докладах обычно ничего не говорят). Для .NET обсудим библиотеку MediatR. И её порт на java в виде PipelinR (тот редкий случай, когда либу портировали .NET -> Java, а не наоборот).
Видеозапись доклада
Информация о спикере
Андрей Цветцих
Ведущий разработчик, Тинькофф
Андрей Цветцих
Ведущий разработчик, Тинькофф
Все доклады секции