В последние годы микросервисы и распределенные системы приобрели популярность, поскольку проблемы с монолитными системами начали расти после многих лет существования стандарта де-факто. Все пытаются отделить свои системы.
Один из способов отделить ваше приложение — использовать события.
Что такое события и зачем их использовать?
Существуют разные определения и типы событий, но в данном контексте мы будем называть события важными вехами/фактами в определенной области. Мы говорим о доменных событиях.
Используя события в наших программных проектах, мы получаем несколько преимуществ:
- Важные бизнес-концепции сделаны явными.
Использование событий в чистом виде, означающее явное создание объектов с контекстно-зависимым значением, рисует историю. Каждый разработчик программного обеспечения, который собирается открыть решение, заметит события и узнает (если документировано должным образом), какова семантика этого события.
Кроме того, мероприятия помогают создать повсеместный язык, на котором говорят разработчики, менеджеры и эксперты в предметной области. Вездесущий язык является основной частью предметно-ориентированного дизайна, который представляет собой концепцию, которая очень поможет вам, если вы разрабатываете большие и сложные системы. - Развязка между различными ограниченными контекстами
В идеальном кластере микрослужб службы не должны отключаться из-за дефекта другой службы. Весь смысл создания микросервисов заключается в том, чтобы упаковать функциональные возможности, принадлежащие одному и тому же ограниченному контексту, и обмениваться данными через указанные интерфейсы. Эти указанные интерфейсы часто являются событиями, которые совместно используются группами и организациями.
Определив явный способ взаимодействия со службой через события, мы эффективно разделяем нашу систему, поскольку программный поток будет создаваться системой динамически и реактивно, а не статично.
В каком-то смысле мы используем принцип открытого-закрытого на более высоком уровне, что довольно круто. - Простое тестирование
Вы хотите протестировать свои обработчики событий?
Это довольно просто, так как единственное, что вам нужно сделать, это запустить приложение с соответствующими зарегистрированными зависимостями и активировать мероприятие. Вы также можете просто протестировать метод «обработчика» обработчиков событий напрямую, поскольку «запуск» и «потребление» события должны быть протестированы на уровне инфраструктуры.
Это означает, что у вас будет больше модульных тестов и меньше интеграционных тестов, что также сократит время конвейера CI/CD. - Знание предметной области
Самое замечательное в событиях то, что их можно хранить. Сохраняя свои события, вы сможете отслеживать и анализировать процессы и проблемы в ваших системах.
Вы также получите более глубокие знания предметной области, поскольку само существование события (с некоторыми метаданными которые можно легко прикрепить, например дату и время, когда это событие было поднято), даст вам четкое представление о некоторых бизнес-фактах.
Если вы используете источник событий, путешествие во времени также возможно, что является довольно удивительной функцией! - Анализ данных
Когда вы начнете хранить события своей области, вы накопите знания, которые лучше, чем любое исследование, которое вы когда-либо проводили.
Сортируя, фильтруя и анализируя потоки событий с помощью инструменты анализа данных, вы сможете принимать важные бизнес-решения.
Это также позволяет компаниям добиться количественного и измеримого прогресса, поскольку бизнес-цели могут быть согласованы с максимизацией/минимизацией определенной функции, которая имеет в качестве параметра a определенный набор данных за указанный интервал.
Вы также можете использовать информационные панели для отчета о работоспособности развернутой системы в режиме реального времени.
Я надеюсь, что смог помочь вам в вашем нынешнем путешествии по программированию.
Если вам понравилась эта статья и вы хотите прочитать больше статей в этом контексте, не забудьте подписаться :)