For the complete documentation index, see llms.txt. This page is also available as Markdown.

Visão geral da arquitetura

Como o All ID funciona e como os componentes interagem.

Arquitetura do sistema

┌─────────────┐
│   Cliente   │
└──────┬──────┘
       │ HTTPS
┌──────▼──────────┐
│ Balanceador de carga   │
└──────┬──────────┘
       │ HTTP:1302
┌──────▼──────────┐       ┌────────────────┐
│  Serviço Peer   │──────▶│   Facematch    │
│  • Orquestra   │HTTP   │   • Correspondência facial │
│  • Expõe a API │:8080  │   • Anonimiza  │
│  • Armazena dados │       │   • Extrai    │
└──────┬──────────┘       └────────────────┘
       │ MySQL:3306
┌──────▼──────────┐
│  Banco de dados MySQL │
│  • Perfis     │
│  • Identificadores  │
│  • Transações │
└─────────────────┘

Serviço Peer

O Serviço Peer é o principal componente da aplicação.

O que ele faz:

  • Expõe REST API endpoints (/profiles, /profiles/biometric-validation)

  • Valida requisições recebidas

  • Orquestra operações biométricas

  • Armazena e recupera dados do MySQL

  • Chama o Serviço Facematch para reconhecimento facial

  • Pode se comunicar com o Serviço Router da Certta para operações distribuídas

  • Retorna respostas aos clientes

Tecnologia: Aplicação Node.js

Requer: Serviço Facematch, Banco de dados MySQL

Serviço Facematch

O Serviço Facematch lida com operações de reconhecimento facial.

O que ele faz:

  • Recebe imagens biométricas do Peer

  • Extrai características faciais usando modelos de ML

  • Calcula pontuações de similaridade entre rostos

  • Anonimiza imagens biométricas

  • Retorna vetores de características e pontuações para o Peer

Tecnologia: Serviço de machine learning com modelos incorporados

Requer: Nenhuma (autônomo, modelos incluídos na imagem)

Serviço Router (hospedado pela Certta)

O Serviço Router é um componente de orquestração hospedado e gerenciado pela Certta (não implantado por você).

O que ele faz:

  • Encaminha consultas biométricas entre várias instâncias do Peer de clientes

  • Permite consultas distribuídas de perfis entre regiões

  • Coordena operações entre instâncias para implantações multirregião

Comunicação:

  • Seu Peer → Certta Router: requisições HTTP para consultas distribuídas

  • Certta Router → Seu Peer: callbacks HTTP com resultados

Quando usado: Implantações multirregião em que os dados de perfil são distribuídos entre localidades geográficas

Você não implanta nem gerencia o Serviço Router. Ele é executado na infraestrutura da Certta e o seu Serviço Peer se conecta a ele quando necessário para operações distribuídas.

Banco de dados MySQL

Armazenamento persistente para todos os dados biométricos.

O que ele armazena:

  • Perfis biométricos (características faciais, metadados)

  • Identificadores de usuário (CPF, nome, etc.)

  • Histórico de transações

  • Resultados de validação

Tecnologia: MySQL 8.0+ ou Aurora MySQL 3.10.0+

Esquema: Fornecido pela Certta durante a configuração

Fluxos de dados

Fluxo de criação de perfil

Fluxo de validação biométrica

Fluxo de validação distribuída (com o Certta Router)

O Serviço Router é hospedado pela Certta. Você só precisa configurar o seu Serviço Peer para se conectar ao endpoint do Router da Certta.

Descoberta de serviços

Seus serviços se localizam usando DNS:

Configure via variáveis de ambiente (FACEMATCH_IP, MYSQL_IP, etc.)

Para implantações distribuídas, configure o endpoint do Router da Certta (fornecido pela Certta) em DS_IP e DS_PORT variáveis.

Estratégia de escalabilidade

Escalabilidade horizontal (recomendado):

  • Adicione mais instâncias do Peer → atenda a mais solicitações de API

  • Adicione mais instâncias do Facematch → processe mais correspondências em paralelo

  • Use réplicas de leitura do banco de dados → atenda a mais consultas de leitura

Escalabilidade vertical:

  • Aumente os recursos do Peer → processamento de requisições mais rápido

  • Aumente os recursos do Facematch → correspondência mais rápida (benefício limitado, horizontal é preferível)

  • Aumente os recursos do banco de dados → processamento de consultas mais rápido

Alta disponibilidade

Implantação com múltiplas instâncias:

  • Implante 2+ instâncias do Peer atrás do balanceador de carga

  • Implante 2+ instâncias do Facematch

  • Use banco de dados Multi-AZ

Verificações de integridade:

  • Peer: GET /health na porta 1302

  • Facematch: GET /health na porta 8080

  • Banco de dados: ping do MySQL

Failover automático:

  • O balanceador de carga remove instâncias do Peer com falha

  • O Peer descobre instâncias saudáveis do Facematch via DNS

  • O banco de dados faz failover para a instância de standby (Multi-AZ)

Arquitetura de segurança

Camadas de rede:

Autenticação:

  • Cliente → Balanceador de carga: implemente autenticação (chaves de API, OAuth2, etc.)

  • Serviços: comunicam-se dentro da rede privada sem autenticação

Criptografia:

  • Tráfego do cliente: HTTPS (TLS)

  • Conexões do banco de dados: TLS habilitado

  • Dados em repouso: criptografia do banco de dados habilitada

Atualizado