Какова лучшая практика в отношении названий тем? - PullRequest
0 голосов
/ 11 апреля 2019

Как лучше всего использовать название темы с помощью google-pubsub.

Если у меня есть тезисы событий:

  • электронная почта клиента обновлена ​​
  • адрес клиента обновлен
  • клиент создан
  • клиент удален
  • статья создана
  • статья удалена ...

Какова лучшая практика в отношении названий тем:

  • создать тему customer и тему article, содержащую каждый из событий своего домена
  • создать тему deleted, которая будет содержать customer deleted и article deleted и т. Д.
  • создать тему по событию customer:created, customer:deleted и т.д ...

Или другой ..

1 Ответ

1 голос
/ 11 апреля 2019

Решение, которое можно было бы принять по темам, действительно зависит от варианта использования. Если вся ваша системная архитектура имеет четкое разграничение между клиентом / статьей или созданным / обновленным / удаленным, то может иметь смысл разделить темы по тем же направлениям. Если нет, тогда может быть меньше пользы в разделении на несколько тем.

Одним из способов определения способа разделения может быть рассмотрение типа каждого сообщения. Если вы разделите все эти темы, будут ли они иметь одинаковый тип сообщения (может быть, сообщение «событие») или типы сообщений будут разными? Если они разные, то разные темы могут иметь смысл.

Наиболее интересным может быть поведение на стороне подписки. Будет ли один и тот же подписчик интересоваться событиями как для клиентов, так и для статей, или их разные подписчики для каждого? Как насчет создания / удаления / обновления? Раскол по этим направлениям звучит менее вероятно. Если все подписчики будут интересоваться всеми сообщениями, то, вероятно, целесообразна отдельная тема. В противном случае подписчик должен будет получать сообщения от нескольких подписок. Если некоторые подписчики заинтересованы в подмножестве сообщений, тогда могут быть полезны отдельные темы (и, следовательно, отдельные подписки). В противном случае подписчики должны будут просмотреть все сообщения и немедленно подтвердить сообщения, которые им не интересны, поскольку в настоящее время Google Cloud Pub / Sub не поддерживает фильтрацию. Если это сочетание, то это компромисс между большей сложностью у подписчика, заинтересованного во всех сообщениях (использующих разные темы), и сложностью у подписчика, заинтересованного в подмножестве (использующих ту же тему и требующих фильтрации).

...