Рубрики
Uncategorized

Процессы ведомых событий

Одна тема, когда говорится о неверных вычислениях, которые часто придумываются, это то, что «безвесочный … Помечено облаком, AWS, DEVOPS, SERVERLELS.

Одна тема, когда говорится о неверных вычислениях, которые часто возникают, состоит в том, что «WEVERS SERVERLED является событие. » Лично я обнаружил, что это верно и собираюсь поделиться одним из моих любимых архитектурных архитектур, построенных с AWS в этом посте.

Деловой сценарий

Для этого поста мы собираемся использовать упрощенный пример пример.

В нашем примере приложение всякий раз, когда пользователь подписывает, чтобы использовать наше приложение, мы хотим выполнить следующие три действия:

  1. Считайте событие в нашем 3-я сторонняя аналитика службы
  2. Поместите их в список рассылки по электронной почте в нашем Счет MailChimp
  3. Отправить уведомление на Слабый канал в нашей корпоративной провиве

Выполнение

Есть много способов, которыми кто-то может подойти к этой проблеме, но мой любимый способ — использовать подход «Fan Out Out» или «Fork Fork». Вот как это работает.

В нашем примере используйте случай, когда человек подписывает, чтобы использовать приложение, мы отправляем сообщение на Amazon Sns Отказ Затем SNS Topic получает это сообщение и отправляет его на три очередь каждый имеет Функция на другой стороне. Каждая функция содержит код, который делает тяжелый подъем для нас.

Фильтрация сообщений

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

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

Мы можем достичь этого, используя SNS сообщений фильтрация Отказ

Преимущества этого подхода

Как и любое решение архитектуры, всегда есть плюсы и минусы. Важность, чтобы взвесить два вместе и использовать то, что работает для вас и вашей команды. Вот некоторые преимущества, которые я заметил, и почему мне нравится использовать этот подход:

  1. События отделены от первоначального действия. Например, мы не хотели бы, чтобы кто-то не сможет зарегистрироваться только потому, что произошла ошибка, подсчитывая регистрацию в нашей аналитике.
  2. Эти фоновые реакции на события не должны быть мгновенными, поскольку нам не нужно предоставлять отзывы пользователя … Это просто для нашего используемого офиса Backend, поэтому нормально обрабатывать эти события отдельно от общего потока приложений.
  3. Допустим, у вас есть инструмент CLI и веб-приложение … Оба из них могут отправлять сообщения на эту тему SNS.
  4. Если вы решите, что вы больше не хотите использовать MailChimp в качестве поставщика списка адресов электронной почты, вы можете удалить соответствующую очередь/функцию Combo и добавить новую очередь/функцию для обработки вашей замены службы списка рассылки.

Дополнительные вещи, чтобы иметь в виду

Я не обсуждал это подробно здесь, но это хорошая практика, чтобы иметь «очередью мертвой буквы» (DLQ) на каждой настройке очереди, чтобы вы могли повторить неудачные события. Вы можете прочитать больше о том, как это сделать в этом Блог пост Отказ

В нашей примерной архитектуре мы сосредоточились на SNS -> SQS -> лямбда; Тем не менее, существует множество других способов достижения архитектуры «вентилятора». Например: Amazon EventBridge или AWS Шаг Функции Отказ

Проверьте это Github repo Для шаблона стартера, используя AWS SAM Если вы хотите увидеть, как реализовать эту архитектуру.

Оригинал: «https://dev.to/aws-builders/event-driven-background-processes-55li»