> For the complete documentation index, see [llms.txt](https://docs.caf.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.caf.io/caf-api/caf-api-pt-br/all-id/technical-requirements.md).

# Requisitos técnicos

Especificações de recursos e requisitos de rede para implantar o All ID.

## Visão geral

O All ID requer infraestrutura de orquestração de contêineres, um banco de dados MySQL e conectividade de rede entre os componentes. Esta página define as especificações mínimas e recomendadas para cada componente.

## Especificações de contêiner

### Serviço Peer

O Serviço Peer é a `API` camada de gateway e orquestração.

| Especificação     | Requisito                                  |
| ----------------- | ------------------------------------------ |
| **CPU**           | 0,25 vCPU (250m)                           |
| **Memória**       | 512 MB                                     |
| **Armazenamento** | 1 GB efêmero                               |
| **Porta**         | 8080 (HTTP)                                |
| **Instâncias**    | mínimo de 1, 2+ recomendadas para produção |

{% hint style="info" %}
O Serviço Peer é stateless e escala horizontalmente. Adicione mais instâncias para lidar com volumes maiores de requisições.
{% endhint %}

### Serviço Facematch

O Serviço Facematch executa reconhecimento facial e anonimização de imagens.

| Especificação     | Requisito                                  |
| ----------------- | ------------------------------------------ |
| **CPU**           | 1 vCPU (1000m)                             |
| **Memória**       | 2 GB                                       |
| **Armazenamento** | 2 GB efêmero                               |
| **Porta**         | 8080 (HTTP)                                |
| **Instâncias**    | mínimo de 1, 2+ recomendadas para produção |

{% hint style="warning" %}
O Serviço Facematch requer um mínimo de 2 GB de memória para carregar os modelos de aprendizado de máquina. Não aloque menos do que isso.
{% endhint %}

## Especificações do banco de dados

Banco de dados MySQL para armazenamento persistente de perfis, identificadores e transações.

| Especificação     | Desenvolvimento/Teste | Produção             |
| ----------------- | --------------------- | -------------------- |
| **Versão**        | MySQL 8.0+            | Aurora MySQL 3.10.0+ |
| **CPU**           | 2 vCPU                | 4+ vCPU              |
| **Memória**       | 4 GB                  | 8+ GB                |
| **Armazenamento** | 20 GB SSD             | 100+ GB SSD          |
| **IOPS**          | Melhor esforço        | 3000+ provisionados  |
| **Implantação**   | Instância única       | Multi-AZ             |

{% hint style="success" %}
Recomendamos o Aurora MySQL para implantações de produção na AWS devido aos seus recursos de escalabilidade automática, alta disponibilidade e desempenho.
{% endhint %}

## Requisitos de rede

### Endpoints expostos

O Serviço Peer deve expor publicamente o seguinte endpoint:

| Ponto de extremidade                 | Porta     | Protocolo  | Finalidade                           |
| ------------------------------------ | --------- | ---------- | ------------------------------------ |
| `/v1/biometric-validation-responder` | 80 ou 443 | HTTP/HTTPS | Comunicação da infraestrutura Certta |

{% hint style="danger" %}
**Crítico**: O `/v1/biometric-validation-responder` endpoint **deve estar acessível publicamente** pois é usado pelo Certta Router Service para consultar o Serviço Peer em operações biométricas distribuídas entre regiões.
{% endhint %}

{% hint style="info" %}
Configure seu balanceador de carga para expor esse endpoint com a segurança adequada (lista de permissões de IP, limitação de taxa etc.).
{% endhint %}

### Conectividade interna

Os serviços se comunicam dentro da sua rede privada:

```
Serviço Peer → Serviço Facematch (HTTP:8080)
Serviço Peer → Banco de dados MySQL (MySQL:3306)
```

### Configuração de firewall

Configure os firewalls para permitir apenas o tráfego necessário:

{% tabs %}
{% tab title="Serviço Peer" %}
**Entrada**:

* Porta 8080 do balanceador de carga ou dos clientes

**Saída**:

* Porta 8080 para o Serviço Facematch
* Porta 3306 para o Banco de dados MySQL
* Porta 443 para o Router Service
  {% endtab %}

{% tab title="Serviço Facematch" %}
**Entrada**:

* Porta 8080 apenas do Serviço Peer

**Saída**:

* Nenhuma necessária
  {% endtab %}

{% tab title="Banco de dados" %}
**Entrada**:

* Porta 3306 apenas do Serviço Peer

**Saída**:

* Nenhuma necessária
  {% endtab %}
  {% endtabs %}

{% hint style="danger" %}
**Segurança**: Implante o Facematch e o banco de dados em redes privadas, sem acesso direto à internet. Apenas o Serviço Peer (via balanceador de carga) deve estar acessível externamente.
{% endhint %}

## Permissões IAM (AWS)

### Serviço Peer

O Serviço Peer requer as seguintes permissões da AWS:

**AWS Secrets Manager**:

* `secretsmanager:GetSecretValue` - Ler credenciais do banco de dados e certificados do Router
* `secretsmanager:DescribeSecret` - Verificar metadados do segredo

**AWS Systems Manager (SSM)**:

* `ssm:GetParameter` - Ler parâmetros de configuração
* `ssm:GetParameters` - Ler vários parâmetros

{% hint style="warning" %}
**Importante**: O contêiner do Serviço Peer deve ter uma função IAM anexada com essas permissões. Sem elas, o serviço falhará ao iniciar ou operar corretamente.
{% endhint %}

### Serviço Facematch

O Serviço Facematch não requer permissões IAM da AWS. Ele opera de forma independente, sem acessar serviços da AWS.

## Imagens de contêiner

A Certta fornece imagens Docker privadas para os componentes que você implanta.

```
<registry-url>/peer:<version>
<registry-url>/facematch:<version>
```

{% hint style="info" %}
Entre em contato com seu gerente técnico de conta da Certta para obter:

* URL e credenciais do registro de contêineres
* Versões atuais estáveis das imagens
* Notificações de atualização de imagens
  {% endhint %}

## Compatibilidade da plataforma

O All ID foi testado e validado em:

* **AWS ECS Fargate** ✅ Totalmente compatível
* **Amazon EKS** ✅ Totalmente compatível

Outras plataformas de orquestração de contêineres podem funcionar, mas não foram testadas oficialmente.

## Expectativas de desempenho (a definir)

### Serviço Peer

* **Latência**: 50-200 ms por requisição (excluindo o processamento do Facematch)
* **Taxa de transferência**: 50-100 requisições/segundo por instância
* **Escalabilidade**: Horizontal (adicione mais instâncias para maior taxa de transferência)

### Serviço Facematch

* **Latência**: 100-500 ms por operação de correspondência facial
* **Taxa de transferência**: 10-50 operações/segundo por instância
* **Escalabilidade**: Horizontal (adicione mais instâncias para processamento paralelo)

### Banco de dados

* **Latência de consulta**: 5-50 ms para consultas típicas
* **Conexões**: 10-50 conexões por instância do Peer
* **Conexões simultâneas**: 100+ compatíveis

## Dimensionamento da implantação

* **Peer**: 2-4 instâncias (0,5-1 vCPU, 1-2 GB no total)
* **Facematch**: 2-4 instâncias (2-4 vCPU, 4-8 GB no total)
* **Banco de dados**: Multi-AZ (4+ vCPU, 16+ GB, 100+ GB)
* **Total**: \~6,5+ vCPU, \~21+ GB de RAM

## Próximos passos

* Revise [Visão Geral da Arquitetura](/caf-api/caf-api-pt-br/all-id/architecture-overview.md) para entender como os componentes interagem
* Revise [Orientações para Produção](/caf-api/caf-api-pt-br/all-id/production-guidance.md) para exemplos de implantação
* Revise [Configuração](/caf-api/caf-api-pt-br/all-id/configuration.md) para configuração de variáveis de ambiente


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.caf.io/caf-api/caf-api-pt-br/all-id/technical-requirements.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
