Это не является стандартом, но в качестве 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