Это не является стандартом, но в качестве best-practice вполне может пригодиться при проектировании асинхронного взаимодействия микросервисов.
Предлагается формировать названия для топиков Kafka, используя несколько элементов:
<data-center>.<domain>.<message-type>.<dataset-name>.<data-name>
или так:
<data-center>.<domain>.<message-type>.<dataset-name>.<action-name>
|
<data-center> |
компания или группа доменов или проектов/направлений |
|
<domain> |
домен, проект или направление |
|
<message-type> |
тип сообщения |
|
<dataset-name> |
наименование группы (набора) данных в топике (по аналогии с именем базы данных) |
|
<data-name> |
наименование данных в топике (по аналогии с именем конкретной таблицы) |
|
<action-name> |
Наименование действия (по отношению к объекту/данным) |
Если количество топиков и, соответственно, информационный обмен планируется не очень большими, то можно обойтись без элемента <data-center>. В некоторых случаях можно также обойтись без элемента <data-name> - если без него понятен смысл названия и добавление дополнительного элемента будет избыточнм.
В качестве домена <domain> могут быть информационные системы компании, с которыми планируется асинхронное взаимодействие через Kafka.
|
logging |
для логирования данных (slf4j, syslog и т. д.) |
|
queuing |
для классических вариантов использования очередей |
|
tracking |
для отслеживания таких событий, как клики пользователей, просмотры страниц, просмотры рекламы и т.д. |
|
etl/db |
для случаев использования ETL и CDC, таких как каналы базы данных |
|
streaming |
для топиков, созданных в конвейере потоковой обработки |
|
push |
для данных, которые передаются из офлайн-сред (пакетных вычислений) в онлайн-среды |
|
user |
для пользовательских данных |
|
check |
проверить статус |
|
get |
получить |
|
read |
прочитать |
|
validate |
провалидировать |
|
collect |
собрать |
|
freeze |
заморозить |
|
store |
перенести на склад |
|
write-off |
удалить |
|
other action verb |
иные глаголы действий…. |
<data-center>.<domain>.<message-type>.<dataset-name>.<data-name>
<data-center>.<domain>.<message-type>.<dataset-name>.<action-name>
maintance.office.queuing.orders.send
maintance.shop.logging.requests
commers.crm.streaming.new-clients.check
crm.queuing.productInfo.get
gis.edo.streaming.incoming-document.get