# RFC Queue Naming ## Recomendação para os nomes das filas Baseado na [RFC Topic Naming](link), construir um padrão para as filas se faz necessario. sabedo que o SQS é case-sensitive e pode conter até 80 caracteres ### Formatação dos Nomes Baseado na [RFC Topic Naming](link), a formatação segue respeitando o conceito de snake_case ### O que **NÃO** usar No mundo da nomeclatura de filas, sabedo que as filas são dedicadas a um serviço em especifico, o nome perde as restrições podendo ser bem mais flexivel. O importante é **sempre** representar para qual serviço esta fila aponta. Sempre criar as filas em modo **standard**, se o topico de consumo **não** for FIFO, a fila tambem **não será**, e se o topico for FIFO, a fila representará do mesmo modo. ### Filas Mortas Por conveção é ideial **sempre** criar filas que recebam os dados que provenientes de erros nos consumos da filas, esses dados servem como log e/ou demonstrativo de erro que o serviço possa estar apresentando. É ideal que **todas** as filas tenha uma fila morta associada, e que cada fila morta **receba dados de apenas uma fila mãe**. É importante definir o que fazer, de forma automatizada, com esses dados que caem em filas mortas. É importante tambem definir as configurações das filas que alocarão esses dados em filas mortas. *(inicialmente adotaremos os default da AWS)* A nomeclatura das filas mortas deve ser exatemente igual ao nome da fila mãe, adicionando o prefixo `dead__` no inicio. *Exemplos no fim do doc* ### Estrutura #### Conceito Geral `<ambiente>__<dominio_tópico>_<sub-dominio_tópico>_<descrição_tópico>__<service>_<descrição>_<versão>` - **ambiente** *(Não Obrigatório)* - Como ainda temos apenas uma AWS para ambas as fases de desenvolvimento, colocar o ambiente como primeira etapa, facilita na filtragem dos topicos - Ex: `stg`, `staging`, `prd`, `production`, `hom`, `homolog` - **dominio_topico** *(Obrigatório)* - É importante referenciar o nome do dominio do topico no nome da fila, facilitando entender sua origem - **sub-dominio_topico** *(Obrigatório, se houver)* - vide **dominio_topico** - **descrição_tópico** *(Obrigatório)* - vide **dominio_topico** - **service** *(Obrigatório)* - Usar o nome mais popular do serviço que irá consumir a fila, caso exista a necessidade, o nome do serviço pode ser separado usando um subtraço, Deixando claro que o nome `service` ou `serviço` não precisa ser mencionado. - **descrição** *(Não Obrigatório)* - Direcionado a um exemplificação do tipo de tratamento que será feito com os dados disponibilizados, ou mesmo ao fluxo da qual faz parte dentro do serviço. Por exemplo `integration` para uma fila que esta sendo consumida dentro de um serviço qualquer na parte de integração, ou `atualização_preços` visando o consumo de um serviço qualquer realizando esta ação - **versão** *(Não Obrigatório)* - vide [RFC Topic Naming](link) ### Alguns Exemplos de filas. topic: `prd__core__fct__errors_2` queue: `prd__core_errors__xpg_slack_notification` queue: `prd__core_errors__shortcut_create_issues_0` dead: `dead__prd__core_errors__xpg_slack_notification` dead: `dead__prd__core_errors__shortcut_create_issues_0` --- topic: `pipedrive_marketing__cmd__webhook_0` queue: `stg__pipedrive_marketing_webhook__xpg_beds_moveout` queue: `stg__pipedrive_marketing_webhook__xpg_beds_booking` queue: `prd__pipedrive_marketing_webhook__xpg_beds_moveout` queue: `prd__pipedrive_marketing_webhook__xpg_beds_booking` dead: `dead__stg__pipedrive_marketing_webhook__xpg_beds_moveout` dead: `dead__stg__pipedrive_marketing_webhook__xpg_beds_booking` dead: `dead__prd__pipedrive_marketing_webhook__xpg_beds_moveout` dead: `dead__prd__pipedrive_marketing_webhook__xpg_beds_booking` --- topic: `stg__identity__cdc__users_1` queue: `stg__identity_users__growth_create` queue: `stg__identity_users__supply_update` queue: `stg__identity_users__xpg_delete` dead: `dead__stg__identity_users__growth_create` dead: `dead__stg__identity_users__supply_update` dead: `dead__stg__identity_users__xpg_delete` ___ topic: `notifications_leads__cmd_emails_3` queue: `stg__notifications_leads_emails__finance` dead: `dead__stg__notifications_leads_emails__finance`