O blog da AWS
Migrando do CockroachDB para Amazon Aurora PostgreSQL: A jornada da Aarin para maior escalabilidade e eficiência operacional
Por Jean Philip de Rogatis, CTO, Aarin e Luis Tiani, Sr. Solutions Architect, AWS.
Introdução
A modernização de bancos de dados é uma jornada crucial para empresas que buscam maior escalabilidade e eficiência operacional. Neste blogpost, compartilharemos como a Aarin migrou sua infraestrutura de banco de dados do CockroachDB para o Amazon Aurora PostgreSQL, utilizando AWS Database Migration Service (AWS DMS) e implementando uma solução customizada de sincronização contínua.
A Aarin
A Aarin é uma empresa brasileira de tecnologia financeira, integrante do Grupo Bradesco, focada em democratizar o acesso a soluções financeiras para empresas de todos os portes. Fundada em 2020 e com sede em São Paulo, a Aarin atua em serviços de finanças incorporadas (embedded finance), transações via Pix e Banking as a Service (BaaS), permitindo que empresas ofereçam serviços financeiros aos seus clientes sem depender dos bancos tradicionais.
Contexto e Desafios
A Aarin inicialmente utilizava CockroachDB como sua solução de banco de dados principal, aproveitando seus benefícios de distribuição e alta disponibilidade. No entanto, com o crescimento da empresa, alguns desafios começaram a emergir:
- Complexidade Operacional: A implementação do CockroachDB em um cluster Kubernetes enfrentava complexidades operacionais. O principal gargalo estava nos procedimentos de upgrade, que demandavam janelas de downtime incompatíveis com os SLAs acordados com as áreas de negócio da Aarin. Adicionalmente, a documentação incompleta da configuração original e a perda do conhecimento histórico da implementação amplificavam os riscos de cada operação de manutenção.
- Limitações de Integração: Identificamos a necessidade de melhor integração com serviços nativos AWS o que permitiria maior aproveitamento dos recursos disponíveis na nuvem e otimização da infraestrutura atual.
- Otimização de Custos: Necessidade de otimização dos custos operacionais, visando um equilíbrio entre performance e investimento.
Arquitetura da Solução

Nossa solução de migração foi estruturada em três componentes principais:
- AWS DMS para Full Load 
         - Configuração de endpoints de origem (CockroachDB) e destino (Amazon Aurora PostgreSQL)
- Mapeamento de schema e regras de transformação
- Validação de integridade dos dados migrados
 
- Sistema de Sincronização Customizado 
         - Queue-based architecture utilizando Amazon SQS
- Microserviço de processamento de eventos
- Sistema de validação e reconciliação de dados
 
- Monitoramento e Validação 
         - Amazon CloudWatch Metrics para monitoramento em tempo real
- Logs estruturados para auditoria
- Scripts de validação para garantia de consistência
 
Iniciamos a implementação com o full load via AWS DMS, migrando a estrutura e dados principais do CockroachDB para o Amazon Aurora PostgreSQL. Para manter a sincronização contínua, desenvolvemos um serviço que monitora uma fila Amazon SQS, onde são registradas todas as alterações de dados pós-full load. Este serviço processa as mensagens da fila e aplica as mudanças em ambos os bancos simultaneamente, mantendo-os consistentes.
O processo é apoiado por um sistema de validação em tempo real e logs detalhados, permitindo monitoramento contínuo da performance e rápida identificação de possíveis inconsistências. Esta abordagem garantiu uma migração sem interrupções, mantendo a integridade dos dados durante toda a transição.
Implementação Detalhada
Preparação e Planejamento
Antes de iniciar a migração, estabelecemos os seguintes componentes críticos:
- Ambiente de Staging 
         - Réplica do ambiente de produção para testes 
           - Mascaramento dos dados para ambinete não produtivo
 
- Validação de compatibilidade de schemas
- Testes de performance e latência
 
- Réplica do ambiente de produção para testes 
           
Estratégia de Migração
{
  "source": "CockroachDB",
  "target": "Aurora PostgreSQL",
  "migration-type": "full-load",
  "parallel-load": true,
  "validation-mode": "enabled"
}
Configuração do AWS DMS
Configuramos o AWS DMS com as seguintes especificações:
{
  "instance-class": "dms.r5.2xlarge",
  "engine-version": "3.4.7",
  "replication-task-settings": {
    "full-load-mode": true,
    "validation": true,
    "logging-level": "DETAILED"
  }
}
Solução de Sincronização Customizada
Para garantir a sincronização bidirecional, desenvolvemos um sistema baseado em eventos:
# Exemplo simplificado do handler de eventos
Monitoramento e Métricas
Implementamos diversos pontos de monitoramento:
- Amazon CloudWatch dashboards 
         - Latência de replicação
- Taxa de throughput
- Erros de sincronização
- Status de consistência
 
- Alarmes e Notificações 
         - Atrasos de replicação
- Falhas de sincronização
- Limites de performance
 
Resultados e Benefícios
Métricas pós migração:
- Redução de custos em aproximadamente 40%
- Processamento de pico medido: 1.400 TPS
- Volume diário de transações: 3 Milhões (4x maior que o anterior)
- Alta estabilidade mesmo com cargas elevadas
A migração para Amazon Aurora PostgreSQL trouxe melhorias significativas:
- Desempenho Melhorado: O Amazon Aurora proporcionou uma redução de latência e um aumento na velocidade das operações de leitura e gravação. 
         - Otimização de queries complexas;
- Menor latência em operações de I/O (input/output);
 
- Custos Otimizados: ao utilizar um serviço gerenciado, foi possível reduzir os custos operacionais, redistribuindo recursos para áreas de inovação.
- Integração Nativa com AWS: acesso direto a outros serviços AWS, como Amazon CloudWatch para monitoramento e AWS Lambda para automação. 
         - Redução na complexidade de gerenciamento;
- Integração nativa entre os serviços AWS
- Backup e recovery automatizados
 
Melhores Práticas e Lições Aprendidas
- Planejamento Detalhado 
         - Documentação completa do schema
- Testes exaustivos em ambiente de staging
- Plano de rollback bem definido
 
- Monitoramento Proativo 
         - Métricas em tempo real
- Logs detalhados
- Alertas preventivos
 
- Validação Contínua 
         - Checksums de dados
- Comparação de registros
- Verificação de integridade
 
A estratégia de migração fundamentou-se nesses três elementos críticos. A fase preparatória envolveu o mapeamento estrutural completo do banco de dados, simulações extensivas em ambiente controlado e definição de procedimentos de contingência. O monitoramento da operação foi estabelecido através de indicadores instantâneos de performance, rastreamento granular de operações e mecanismos de alerta preventivo. A integridade do processo foi assegurada por meio de rotinas automatizadas de verificação, análise comparativa dos dados e protocolos de consistência, garantindo assim a precisão e segurança de toda a transição.
Conclusão
A migração do CockroachDB para Amazon Aurora PostgreSQL representou um marco importante para a Aarin. A combinação de AWS DMS com uma solução customizada de sincronização permitiu uma transição suave e controlada, resultando em uma infraestrutura mais robusta e gerenciável, trazendo eficiência operacional e reduzindo custos.
Recursos Adicionais
Melhores Práticas do PostgreSQL
Sobre os Autores
|  | Jean Philip de Rogatis é CTO na Aarin, liderando todo o time de Desenvolvimento e já foi arquiteto de soluções sênior na AWS. Trabalha na Indústria Financeira, Entusiasta de novas tecnologias, construiu mais de 10 sistemas: de soluções de big data a portais de vendas, entregando um crescimento YoY de três dígitos e liderando uma equipe de 50+ pessoas. Ajuda empresas a transformar seus negócios, adotando tecnologias baseadas em nuvem para encantar seus clientes, parceiros e funcionários. | 
|  | Luis Tiani é Arquiteto de Soluções Sênior na Amazon Web Services (AWS). Especializa-se em temas de Dados e Analytics, auxiliou diversos clientes nos segmentos de Serviços Financeiros, DNB, PME e Enterprise em suas jornadas de adoção de Serviços de Analytics AWS. Como Arquiteto de Soluções, trabalha com clientes do setor financeiro no desenvolvimento e implementação de soluções de BigData/Data Lake, Modernização de Aplicações, Migrações para Nuvem e iniciativas de IA/ML. | 
Sobre os Revisores
|  | Leonardo Azize é Arquiteto de Soluções sênior na AWS, atua com clientes da indústria de FSI, tem trabalhado com desenvolvimento e infraestrutura de aplicações web em multinacionais. Quando não está trabalhando, Leonardo gosta de passar o tempo com a família e brincar com a filha. | 
|  | Rodolfo D’Alessio é Customer Success Manager na Amazon Web Services (AWS), onde atua há mais de 6 anos. Atua no setor financeiro, conduzindo estratégias de adoção de serviços AWS e gerenciando o relacionamento com clientes estratégicos. |