SlideShare a Scribd company logo
1 of 54
Download to read offline
www.luxoft.com
CQRS and Event Sourcing
Грищенко Андрей
(GryshchenkoAndrey@gmail.com)
November 7, 2016
www.luxoft.com
Содержание
1. Почему CQRS?
1. Возникновение современной архитектуры
2. Проблемы CRUD подхода
3. CQRS, как инструмент решения этих проблем
2. Архитектура CQRS приложений
3. CQRS и Java: Axon Framework.
www.luxoft.com
1. Почему CQRS?
www.luxoft.com
Эволюция представления документов
www.luxoft.com
Время бумажных документов
Эра бумажных архивов
www.luxoft.com
Цифровые архивы
Эра цифровых архивов
www.luxoft.com
Раннее управление цифровыми архивами
Поиск в цифровых архивах
www.luxoft.com
Автоматизация в цифровых архивах
Пришло время CRUD
www.luxoft.com
Эра бизнес процессов
www.luxoft.com
Недостаток CRUD
CRUD подход
ориентирован не на
отображение
модели бизнес
логики, а на
манипуляцию
данными
www.luxoft.com
2. Проблемы CRUD
www.luxoft.com
Архитектура типичного приложения
Client
(UI)
Domain
Model
(Logic)
write
read
Database
(Data)
write
read
www.luxoft.com
Проблема 1: использование Java Bean…
Спецификация Sun Microsystems определяет JavaBeans как повторно
используемые программные компоненты, которыми можно
управлять,используя графические
конструкторы и средства IDE.
www.luxoft.com
… приводит к...
1. Нарушение инкапсуляции бизнес-объектов
2. Anemic model(Antipattern)
3. Ухудшение читаемости кода
4. Трудности поддержки
5. Бизнес логика переносится в методы
сервисов
www.luxoft.com
Проблема 2: оптимизация производительности
и её последствия:
Использование ORM tool вместе с
денормализацией данных размывает
www.luxoft.com
Проблема 3: Масштабируемость
В теореме САР(Consistency,
Availability, Partition), мы всегда
выбираем целостность
данных.
www.luxoft.com
Проблема 4: В реальной жизни не бывает конфликтов
модификации данных
1. В бизнес процессах, происходящих в реальной жизни, не бывает
конфликтов модицикации данных
2. Даже если такой конфликт возникает, значит где-то проблема в
реализации бизнес-логики
3. CRUD не учитывает этот аспект
www.luxoft.com
CQRS, как возможное решение
3. CQRS как решение
www.luxoft.com
CQRS
CQRS – Command Query Responsibility Segregation
Разделение ответственности на команды и запросы
www.luxoft.com
Архитектура
www.luxoft.com
CQRS используется в связке с шаблонами
1. CQS – Command-query separation, изобретён Бертраном Мейером в далёком 1988
году. Вкратце: метод должен быть либо командой, выполняющей какое-то действие,
либо запросом, возвращающим данные, но не одновременно.
1. CQRS – возводит CQS на уровень приложения, применяя его к компонентам.
2. Event Sourcing – все изменения состояния приложения хранятся, как
последовательность событий.
3. Eventual Consistency – позволяет увеличить доступность и масштабируемость.
Согласованность в конечном счёте (англ. eventual consistency) — модель работы с данными.
Гарантирует, что в отсутствии изменений данных, через какое-то время после последнего
обновления («в конечном счёте») все запросы будут возвращать последнее обновлённое
значение.
www.luxoft.com
Роль Java Bean
Java Bean используется для
отображения данных на стороне
обработки запросов, но Java Bean !=
Domain Entity.
www.luxoft.com
Проблема 2: Оптимизация
производительности и её последствия
Денормализация данных выполняется только на
стороне обработки запросов. Доменная область
не тронута.
www.luxoft.com
Запрашиваемые данные
Каждая таблица – денормализованное представление
данных на экране пользователя
Высокопроизводительные альтернативы –
Apache Cassandra, HBase, Hypertable…
Не обязательно применять SQL базы данных
www.luxoft.com
Проблема 3: Масштабируемость
• Целостность данных нужна только на стороне
обработки бизнес логики
• На стороне обработки запросов можно использовать
eventual consistency
www.luxoft.com
Проблема 4: В реальной жизни не бывает
конфликтов модификации данных
Представление состояния объекта в виде
последовательности событий:
+3k$ -1k$ +5k$
sum: 7k$
www.luxoft.com
Представление объектов, как череда событий
• Каждый агрегат - это пакет событий
• Нет необходимости использовать реляционные базы
данных
• База должна обладать ACID(Atomicity, Consistency, Isolation,
Durability) свойствами
www.luxoft.com
Представление объектов, как череда событий
Преимущества:
• Удобно отслеживать изменения состояния системы
• Возможность отката состояния системы до любого момента
времени
• Удобный механизм воспроизведения данных и разрешения
конфликтов
• Тестирование поведения приложения(BDD)
• Расширенные возможности для дебага
www.luxoft.com
Расширенные возможности для дебага
Захватить пакет событий, которые привели к ошибке
???
Воспроизвести пакет событий локально
Четко увидеть, какая последовательность действий
привела пользователя к ошибке
PROFIT
www.luxoft.com
Архитектура CQRS приложений
4. Архитектура CQRS приложений
www.luxoft.com
Только подход....
CQRS – это набор шаблонов, очень
гибкий в плане реализаций. Всё
зависит от вас, ну и нужд бизнеса.
www.luxoft.com
Запросы к БД
www.luxoft.com
Сравнение запросов
Запрос к БД
Конвертирование в DTO
Конвертирование в
доменную модель
Передача клиенту
Многослойная архитектура:
Запрос к БД
Конвертирование в DTO
Конвертирование в
доменную модель
Передача клиенту
CQRS:
www.luxoft.com
Команды
www.luxoft.com
Команды
Преимущества использования команд:
1. Ориентация на бизнес задачи клиента
2. Удобный инструмент мониторинга и масштабирования
Команда это бизнес действие пользователя. Это то
действие, которое необходимо для реализации нужд
бизнеса.
Пример – user story: «Я, как пользователь, я хочу создавать новую
запись в адресной книге»
www.luxoft.com
Event store
www.luxoft.com
...и publish
www.luxoft.com
Плюшки
Обработка сложных событий (англ. complex event
processing, CEP) заключается в обработке
множества событий, происходящих на всех уровнях
организации, при этом идентифицируются
наиболее существенные события из множества
событий, анализируется их влияние и в режиме
реального времени предпринимаются
соответствующие действия.
www.luxoft.com
Реализация CQRS
5. Реализация CQRS
www.luxoft.com
Hail the Axon Framework
Axon framework –
достаточно
«взрослый», а так же
самый популярный и
наиболее
функциональный
из всех CQRS
фреймворков.
www.luxoft.com
Пример CQRS приложения на Java
Address Book -
Управление
списком адресов.
www.luxoft.com
www.luxoft.com
Создание и отправка команды
www.luxoft.com
www.luxoft.com
Обработка команды
www.luxoft.com
Бизнес действие
www.luxoft.com
Обработка события
www.luxoft.com
www.luxoft.com
Запрос
www.luxoft.com
Настройка через spring application context
www.luxoft.com
Axon - repository и event store
Repository
Event Store
JPA
JPA
www.luxoft.com
Event stores pros and cons
JPA event store MongoDB, Local Filesystem
Нет поддержки ACID,
большая скорость.
www.luxoft.com
Итого...
CQRS - решение, которое позволяет разрабатывать большие
корпоративные системы. Его использование облегчит
разработку и поддержку, позволит внедрить удобную систему
аудита, а так же практически без ограничений масштабировать
приложение. Применять CQRS для всей системы, не
обязательно, обычно его используют для сложных компонентов.
В то же время, его применение практически не оправдано для
маленьких систем.
www.luxoft.com

More Related Content

What's hot

Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5
Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5
Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5Oleg Nazarevych
 
DB REPLICATION
DB REPLICATIONDB REPLICATION
DB REPLICATIONsoft-point
 
Преимущества системы Docsvision (наше видение)
Преимущества системы Docsvision (наше видение)Преимущества системы Docsvision (наше видение)
Преимущества системы Docsvision (наше видение)Mayliyeva Katira
 
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013backendless
 
Распределённые приложения. Часть 1. «Клиент и ядро бизнес-логики»
Распределённые приложения. Часть 1.
«Клиент и ядро бизнес-логики»Распределённые приложения. Часть 1.
«Клиент и ядро бизнес-логики»
Распределённые приложения. Часть 1. «Клиент и ядро бизнес-логики»Fedor Malyshkin
 
Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"
Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"
Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"Fwdays
 
Микросервисы на практике
Микросервисы на практикеМикросервисы на практике
Микросервисы на практикеVitebsk DSC
 
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015JetStyle
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...adam93
 
Буклет "Интеграция DIRECTUM и Dynamics CRM"
Буклет "Интеграция DIRECTUM и Dynamics CRM"Буклет "Интеграция DIRECTUM и Dynamics CRM"
Буклет "Интеграция DIRECTUM и Dynamics CRM"Виктор Золотов
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Mediabrain & Bitrix24
Mediabrain & Bitrix24Mediabrain & Bitrix24
Mediabrain & Bitrix24Zekov Aleksey
 

What's hot (16)

Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5
Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5
Ustar Hpc Day 2009 (R2 Highlights And Netbooting) Rus Draft0.5
 
DB REPLICATION
DB REPLICATIONDB REPLICATION
DB REPLICATION
 
Преимущества системы Docsvision (наше видение)
Преимущества системы Docsvision (наше видение)Преимущества системы Docsvision (наше видение)
Преимущества системы Docsvision (наше видение)
 
Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013Backendless BaaS. Dinosaurus for Jeeconf 2013
Backendless BaaS. Dinosaurus for Jeeconf 2013
 
Функциональные возможности и основные модули Naumen DMS
Функциональные возможности и основные модули Naumen DMSФункциональные возможности и основные модули Naumen DMS
Функциональные возможности и основные модули Naumen DMS
 
Распределённые приложения. Часть 1. «Клиент и ядро бизнес-логики»
Распределённые приложения. Часть 1.
«Клиент и ядро бизнес-логики»Распределённые приложения. Часть 1.
«Клиент и ядро бизнес-логики»
Распределённые приложения. Часть 1. «Клиент и ядро бизнес-логики»
 
Naumen Service Desk 4.0 – больше чем ITSM
Naumen Service Desk 4.0 – больше чем ITSMNaumen Service Desk 4.0 – больше чем ITSM
Naumen Service Desk 4.0 – больше чем ITSM
 
Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"
Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"
Дмитрий Немеш "Миграция нагруженного проекта на микросервисы"
 
Микросервисы на практике
Микросервисы на практикеМикросервисы на практике
Микросервисы на практике
 
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
 
Bitrix24
Bitrix24Bitrix24
Bitrix24
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...
 
Буклет "Интеграция DIRECTUM и Dynamics CRM"
Буклет "Интеграция DIRECTUM и Dynamics CRM"Буклет "Интеграция DIRECTUM и Dynamics CRM"
Буклет "Интеграция DIRECTUM и Dynamics CRM"
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
 
Mediabrain & Bitrix24
Mediabrain & Bitrix24Mediabrain & Bitrix24
Mediabrain & Bitrix24
 

Viewers also liked

Igor Dmitriev: "Java behind the scenes"
Igor Dmitriev: "Java behind the scenes"Igor Dmitriev: "Java behind the scenes"
Igor Dmitriev: "Java behind the scenes"LogeekNightUkraine
 
Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"LogeekNightUkraine
 
ISTA 2016: Event Sourcing
ISTA 2016: Event SourcingISTA 2016: Event Sourcing
ISTA 2016: Event SourcingVladik Khononov
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationAndrew Siemer
 
рентабельный код
рентабельный кодрентабельный код
рентабельный кодMax Arshinov
 
CQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NETCQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NETDavid Hoerster
 
CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureThomas Jaskula
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорAlexander Byndyu
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event SourcingMike Bild
 
CQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHPCQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHPDavide Bellettini
 
Mock bar-exam-civil-law
Mock bar-exam-civil-lawMock bar-exam-civil-law
Mock bar-exam-civil-lawMve Escueta
 
Multi-tenancy: Amplify sales with channel partners
Multi-tenancy: Amplify sales with channel partnersMulti-tenancy: Amplify sales with channel partners
Multi-tenancy: Amplify sales with channel partnersBackupAgent
 

Viewers also liked (19)

Igor Dmitriev: "Java behind the scenes"
Igor Dmitriev: "Java behind the scenes"Igor Dmitriev: "Java behind the scenes"
Igor Dmitriev: "Java behind the scenes"
 
Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"
 
ISTA 2016: Event Sourcing
ISTA 2016: Event SourcingISTA 2016: Event Sourcing
ISTA 2016: Event Sourcing
 
CQRS
CQRSCQRS
CQRS
 
Introduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregationIntroduction to CQRS - command and query responsibility segregation
Introduction to CQRS - command and query responsibility segregation
 
CQRS
CQRSCQRS
CQRS
 
рентабельный код
рентабельный кодрентабельный код
рентабельный код
 
CQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NETCQRS Evolved - CQRS + Akka.NET
CQRS Evolved - CQRS + Akka.NET
 
CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architecture
 
CQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафорCQRS на практике. В поиске точки масштабирования и новых метафор
CQRS на практике. В поиске точки масштабирования и новых метафор
 
CQRS + Event Sourcing
CQRS + Event SourcingCQRS + Event Sourcing
CQRS + Event Sourcing
 
CQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHPCQRS and Event Sourcing with MongoDB and PHP
CQRS and Event Sourcing with MongoDB and PHP
 
Fisiologìa
FisiologìaFisiologìa
Fisiologìa
 
Vero y paula 212
Vero y paula 212Vero y paula 212
Vero y paula 212
 
Mock bar-exam-civil-law
Mock bar-exam-civil-lawMock bar-exam-civil-law
Mock bar-exam-civil-law
 
Rompecabezas
RompecabezasRompecabezas
Rompecabezas
 
term life vs whole life
term life vs whole lifeterm life vs whole life
term life vs whole life
 
Multi-tenancy: Amplify sales with channel partners
Multi-tenancy: Amplify sales with channel partnersMulti-tenancy: Amplify sales with channel partners
Multi-tenancy: Amplify sales with channel partners
 
Tik bab 5
Tik bab 5Tik bab 5
Tik bab 5
 

Similar to Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"

Middleware
MiddlewareMiddleware
Middlewaremegakott
 
Governance of content
Governance of contentGovernance of content
Governance of contentrglab
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа DocsvisionDocsvision
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Архитектура CompanyMedia next
Архитектура CompanyMedia nextАрхитектура CompanyMedia next
Архитектура CompanyMedia nextИнтерТраст
 
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...КРОК
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25MoscowJS
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic appsDenis Izmaylov
 
AiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управленияAiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управленияКварта Технологии
 
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»Lviv Startup Club
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureStas Pavlov
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Vadim Martynov
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINECleverics
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco Russia
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Fwdays
 

Similar to Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing" (20)

Middleware
MiddlewareMiddleware
Middleware
 
Governance of content
Governance of contentGovernance of content
Governance of content
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа Docsvision
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Архитектура CompanyMedia next
Архитектура CompanyMedia nextАрхитектура CompanyMedia next
Архитектура CompanyMedia next
 
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
 
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
"Redux: the best for isomorphic apps", Денис Измайлов, MoscowJS 25
 
redux: the best for isomorphic apps
redux: the best for isomorphic appsredux: the best for isomorphic apps
redux: the best for isomorphic apps
 
AiCare - self-organizing device management service
AiCare - self-organizing device management serviceAiCare - self-organizing device management service
AiCare - self-organizing device management service
 
AiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управленияAiCare - самоорганизующийся сервис управления
AiCare - самоорганизующийся сервис управления
 
Kanban vs scrum_v3
Kanban vs scrum_v3Kanban vs scrum_v3
Kanban vs scrum_v3
 
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
В’ячеслав Москаленко «10 criteria: Scrum vs Kanban»
 
Artsofte for b2 b
Artsofte for b2 b Artsofte for b2 b
Artsofte for b2 b
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Docker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке AzureDocker и оркетсрация контейнеров в облаке Azure
Docker и оркетсрация контейнеров в облаке Azure
 
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
Лучшие практики корпоративной разработки. Лекция 0: обзор курса.
 
Обзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINEОбзор OMNITRACKER CleverENGINE
Обзор OMNITRACKER CleverENGINE
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"Владимир Никонов "Вызовы при разработке enterprise продукта"
Владимир Никонов "Вызовы при разработке enterprise продукта"
 

More from LogeekNightUkraine

Autonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureAutonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureLogeekNightUkraine
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" LogeekNightUkraine
 
Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" LogeekNightUkraine
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"LogeekNightUkraine
 
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"LogeekNightUkraine
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...LogeekNightUkraine
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"LogeekNightUkraine
 
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"LogeekNightUkraine
 
Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"LogeekNightUkraine
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...LogeekNightUkraine
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"LogeekNightUkraine
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"LogeekNightUkraine
 
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"LogeekNightUkraine
 
Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"LogeekNightUkraine
 
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"LogeekNightUkraine
 
Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"LogeekNightUkraine
 
Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”LogeekNightUkraine
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”LogeekNightUkraine
 

More from LogeekNightUkraine (20)

Face recognition with c++
Face recognition with c++ Face recognition with c++
Face recognition with c++
 
C++20 features
C++20 features C++20 features
C++20 features
 
Autonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, futureAutonomous driving on your developer pc. technologies, approaches, future
Autonomous driving on your developer pc. technologies, approaches, future
 
Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design" Orkhan Gasimov "High Performance System Design"
Orkhan Gasimov "High Performance System Design"
 
Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data" Vitalii Korzh "Managed Workflows or How to Master Data"
Vitalii Korzh "Managed Workflows or How to Master Data"
 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
 
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"Oleksii Kuchuk "Reading gauge values with open cv imgproc"
Oleksii Kuchuk "Reading gauge values with open cv imgproc"
 
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...Oleksandr Kutsan "Using katai struct to describe the process of working with ...
Oleksandr Kutsan "Using katai struct to describe the process of working with ...
 
Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"Pavlo Zhdanov "Mastering solid and base principles for software design"
Pavlo Zhdanov "Mastering solid and base principles for software design"
 
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
Serhii Zemlianyi "Error Retries with Exponential Backoff Using RabbitMQ"
 
Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"Iurii Antykhovych "Java and performance tools and toys"
Iurii Antykhovych "Java and performance tools and toys"
 
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
Eugene Bova "Dapr (Distributed Application Runtime) in a Microservices Archit...
 
Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"Aleksandr Kutsan "Managing Dependencies in C++"
Aleksandr Kutsan "Managing Dependencies in C++"
 
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
Yevhen Tatarynov "My .NET Application Allocates too Much Memory. What Can I Do?"
 
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"Alexandr Golyak, Nikolay Chertkov  "Automotive Testing vs Test Automatio"
Alexandr Golyak, Nikolay Chertkov "Automotive Testing vs Test Automatio"
 
Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"Michal Kordas "Docker: Good, Bad or Both"
Michal Kordas "Docker: Good, Bad or Both"
 
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
Kolomiyets Dmytro "Dealing with Multiple Caches, When Developing Microservices"
 
Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"Shestakov Illia "The Sandbox Theory"
Shestakov Illia "The Sandbox Theory"
 
Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”Dmytro Kochergin “Autotest with CYPRESS”
Dmytro Kochergin “Autotest with CYPRESS”
 
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”Ivan Dryzhyruk “Ducks Don’t Like Bugs”
Ivan Dryzhyruk “Ducks Don’t Like Bugs”
 

Andrii Gryshchenko: "An Overview of CQRS and Event Sourcing"