---
# System prepended metadata

title: RFC Queue Naming

---

# 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`
