> ## Documentation Index
> Fetch the complete documentation index at: https://docs.basaltic.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Criando uma fila

> Escolha tipo, visibilidade, retenção e destino de mensagens não entregues.

Crie a fila na conta e região dos produtores e consumidores. Nome e tipo são permanentes; os tempos podem ser atualizados depois.

<span id="create-a-standard-or-fifo-queue" />

## Criar fila padrão ou FIFO

<Tabs>
  <Tab title="Console">
    1. Abra **Queues** e selecione **Create queue**.
    2. Informe um **Name**. Ative **FIFO queue** se precisar de ordem dentro de cada grupo. O console acrescenta `.fifo` ao nome.
    3. Configure **Visibility timeout**, **Retention**, **Delivery delay** e **Receive wait** em segundos.
    4. Opcionalmente escolha uma **Dead-letter queue** do mesmo tipo e o máximo de recebimentos. Crie o destino primeiro.
    5. Adicione **Tags** opcionais e selecione **Create queue**.

       O console abre a fila. Use **Metrics** para gráficos de profundidade e tráfego, e **Messages** para inspecionar mensagens.
  </Tab>

  <Tab title="API">
    Envie esta solicitação a `https://queue.sa-saopaulo-1.basaltic.sh` com os cabeçalhos de [Autenticação](/pt/authentication).

    ```http theme={null}
    POST /v1/queues
    Content-Type: application/json
    ```

    ```json theme={null}
    {
      "name": "order-workers",
      "visibility_timeout_seconds": 60,
      "message_retention_seconds": 345600,
      "receive_wait_time_seconds": 20,
      "redrive_policy": {
        "dead_letter_queue": "failed-orders",
        "max_receive_count": 5
      },
      "tags": { "environment": "production" }
    }
    ```

    Crie `failed-orders` primeiro ou omita a política de redirecionamento. HTTP `201` retorna a fila em `queue`. Salve o ID para operações de mensagens e o CRN para políticas IAM. Um nome terminado em `.fifo` cria FIFO.
  </Tab>

  <Tab title="CLI">
    Salve a solicitação JSON da aba API como `request-1.json`. Use sua conta e região configuradas.

    ```bash theme={null}
    basaltic queue queue create --from-file request-1.json
    ```
  </Tab>

  <Tab title="Go">
    Salve a solicitação JSON da aba API como `request-1.json`. Configure credenciais, conta e região pelas variáveis de ambiente do SDK.

    ```go theme={null}
    package main

    import (
    	"context"
    	"encoding/json"
    	"fmt"
    	"os"

    	basaltic "github.com/basaltic-sh/sdk-go"
    	"github.com/basaltic-sh/sdk-go/queue"
    )

    func readJSON(path string, value any) error {
    	data, err := os.ReadFile(path)
    	if err != nil {
    		return err
    	}
    	return json.Unmarshal(data, value)
    }

    func run() error {
    	ctx := context.Background()
    	cfg, err := basaltic.NewConfig(ctx)
    	if err != nil {
    		return err
    	}
    	client := queue.New(cfg)
    	var request1 queue.CreateQueueRequest
    	if err := readJSON("request-1.json", &request1); err != nil {
    		return err
    	}
    	result1, err := client.CreateQueue(ctx, &request1)
    	if err != nil {
    		return err
    	}
    	fmt.Printf("%+v\n", result1)
    	return nil
    }

    func main() {
    	if err := run(); err != nil {
    		fmt.Fprintln(os.Stderr, err)
    		os.Exit(1)
    	}
    }
    ```
  </Tab>
</Tabs>

<span id="naming-and-type" />

## Nome e tipo

Nomes têm 1–80 letras ASCII, dígitos, pontos, hífens ou sublinhados, começando por letra ou dígito. O sufixo `.fifo` conta nesse limite. Nomes são exclusivos na conta e região. UUIDs e o prefixo `crn:` são reservados.

Use filas padrão quando a ordenação de melhor esforço for suficiente. Use FIFO para processar mensagens do mesmo grupo em ordem. Ambas exigem processamento idempotente após vencer uma concessão. Veja [Filas FIFO e de mensagens não entregues](/pt/queue/fifo-and-dead-letter-queues).

<span id="settings-and-defaults" />

## Configurações e padrões

| Configuração | Padrão | Intervalo permitido |
| - | - | - |
| `visibility_timeout_seconds` | 30 | 0–43,200 segundos |
| `message_retention_seconds` | 345,600 (4 dias) | 60–1,209,600 segundos (14 dias) |
| `max_message_bytes` | 262,144 (256 KiB) | 1,024–262,144 bytes |
| `delay_seconds` | 0 | 0–900 segundos |
| `receive_wait_time_seconds` | 0 | 0–20 segundos |
| `kms_data_key_reuse_period_seconds` | 300 | 60–86,400 segundos |
| `content_based_deduplication` | `false` | Somente FIFO |
| Redirecionamento `max_receive_count` | Obrigatório ao vincular destino | 1–1,000 |

Escolha uma visibilidade suficiente para o processamento típico e estenda concessões individuais para trabalhos longos. A retenção limita a permanência de mensagens não confirmadas. O atraso adia a primeira disponibilidade. Long polling aguarda trabalho em vez de retornar vazio repetidamente.

O limite de tamanho inclui corpo e atributos. Um limite menor detecta envios inesperadamente grandes antes do armazenamento. A API oferece configurações de tamanho e KMS que não aparecem no formulário de criação do console.

<span id="encryption-and-later-changes" />

## Criptografia e alterações posteriores

Corpos e atributos são criptografados em repouso. Omita `kms_key` para gerenciamento pela plataforma ou envie nome, UUID ou CRN de sua chave KMS pela API. Respostas incluem uma referência `kms_key`. Veja as permissões de vinculação em [Permissões do Queue](/pt/queue/permissions).

Atualize com `PATCH /v1/queues/{queue_id}`. Campos omitidos são preservados. `kms_key: null` restaura a criptografia da plataforma para novas mensagens; as existentes mantêm a chave original. Mantenha essa chave utilizável até o consumo ou expiração. `redrive_policy: null` remove a política de mensagens não entregues.

<span id="next-steps" />

## Próximos passos

[Envie e consuma mensagens](/pt/queue/messages), configure o [tratamento de falhas](/pt/queue/fifo-and-dead-letter-queues) e acompanhe as [métricas](/pt/queue#metrics) para detectar acúmulo e recebimentos repetidos.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.