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