A AWS anunciou que o Amazon CloudWatch Database Insights no Aurora DSQL (aws.amazon.com)-dsql-foreign-key-constraints/" target="_blank" rel="nofollow noopener">Aurora DSQL passa a suportar restrições de chave estrange... (aws.amazon.com) DSQL, seu banco de dados relacional distribuído e serverless compatível com PostgreSQL, passou a suportar restrições de chave estrangeira, incluindo ações referenciais como CASCADE e SET NULL. O recurso elimina a lacuna mais criticada desde o lançamento do serviço no re:Invent 2024 e que usuários apontavam como principal bloqueador de adoção.
Principais pontos
O suporte a Documentação: trabalhando com chaves estrangeiras no Auro... (docs.aws.amazon.com) estrangeiras chega ao Aurora DSQL com integridade referencial direto no banco de dados. Os destaques do anúncio:
- O Aurora DSQL agora aplica restrições de chave estrangeira com ações como CASCADE e SET NULL, conforme o anúncio oficial da AWS.
- A verificação usa snapshot consistente e o mecanismo KEY SHARE do PostgreSQL, sem bloquear tabelas nem leituras concorrentes.
- Conflitos de concorrência geram erro de serialização, e não espera: aplicações precisam implementar lógica de retry.
- A ausência de foreign keys era o principal bloqueador de migrações citado pela comunidade desde o re:Invent 2024.
- AWS também adicionou o CloudWatch Database Insights para monitoramento de performance por instrução no nível do cluster.
Como o aurora dsql implementa chaves estrangeiras SEM bloquear tabelas
O Aurora DSQL é um banco de dados SQL serverless e distribuído, compatível com PostgreSQL, projetado para aplicações altamente disponíveis e escaláveis. A pergunta que fica é: como garantir integridade referencial em um sistema distribuído sem travar a concorrência? A resposta está na arquitetura de verificação do serviço.
Leia também
Amazon Linux 2027 entra em preview público com selinux em modo enforcing por padrão
Segundo a documentação oficial do Aurora DSQL, o serviço impõe integridade referencial por meio de verificação de snapshot durante as transações e detecção de conflitos no commit. As relações de chave estrangeira são checadas contra um snapshot consistente da transação, sem bloqueio de tabelas, o que permite operações concorrentes.
No commit, o serviço usa verificações implícitas de KEY SHARE para detectar mudanças conflitantes. Transações que violariam uma restrição são rejeitadas com erro de serialização. Como conflitos concorrentes geram falha de transação em vez de espera, a AWS orienta que as aplicações implementem lógica de retry.
Para linhas muito referenciadas, a recomendação da AWS é evitar colunas de chave que mudam com frequência. O ideal é manter chaves referenciadas estáveis e mover valores variáveis para colunas não-chave, reduzindo conflitos transacionais.
O que dizem os engenheiros por trás do recurso
Marc Brooker, VP e Distinguished Engineer da AWS, explicou que o Aurora DSQL usa o Adjudicator e o mecanismo KEY SHARE do PostgreSQL para detectar alterações em linhas relevantes no commit, sem bloquear leituras concorrentes.
Por que a comunidade cobrava esse recurso desde o lançamento
A demanda não é nova. Quando o serviço foi anunciado no re:Invent 2024, muitos profissionais apontaram a ausência de chaves estrangeiras entre os vários recursos que faltavam no lançamento. O usuário SteveTabernacle2 escreveu na época: "Então 'compatível com Postgres' é enganoso. Chaves estrangeiras são uma parte tão grande de um RDBMS. Não dá para ter dados verdadeiramente 'relacionais' sem chaves estrangeiras."
Na thread 'Amazon wasted their time building DSQL', a falta de foreign keys apareceu como um dos principais bloqueadores de adoção do banco distribuído compatível com PostgreSQL. Marc Bowes, senior principal engineer da AWS, reconheceu na ocasião: "E sim, chaves estrangeiras estão chegando. Nós ouvimos vocês."
Luc van Donkersgoed, principal engineer na Nederlandse Spoorwegen e criador do AWS News Feed, celebrou no LinkedIn: "Conseguiram! O Aurora DSQL agora suporta chaves estrangeiras. A falta de FKs era a maior lacuna entre o DSQL e o Postgres 'normal', bloqueando muitas migrações. Essa mudança torna o DSQL muito mais viável para ambientes brownfield."
Trade-Offs de performance e o que mais chegou ao dsql
A reação da comunidade foi majoritariamente positiva, mas há ceticismo. Um usuário questionou no Reddit: "Sei que esse recurso foi citado como um dos principais bloqueadores de adoção, mas ele deixa as coisas bem mais lentas. Não sei se vai ser tão bom considerando a arquitetura do DSQL."
A própria AWS admite o custo: todas as operações DML em tabelas referenciadas ou referenciadoras geram leituras adicionais para manter a integridade referencial. A recomendação oficial é fazer benchmark da carga de trabalho antes de adicionar uma restrição de chave estrangeira a uma tabela.
Chaves estrangeiras não foram a única novidade recente do serviço. A AWS também adicionou o CloudWatch Database Insights ao DSQL, com monitoramento de performance e troubleshooting por instrução, no nível do cluster.
Na avaliação do Mercado de TI, o movimento indica que a AWS está priorizando a compatibilidade prática com workloads existentes, e não apenas novos projetos. Para quem trabalha com observabilidade na nuvem da Amazon, a combinação do novo recurso com o Database Insights fecha um ciclo: agora dá para migrar esquemas relacionais legados e ainda monitorar o impacto de cada instrução SQL. Empresas que investem em data centers e infraestrutura de nuvem no Brasil tendem a se beneficiar de um banco distribuído mais próximo do PostgreSQL tradicional. O próximo passo, para quem avalia a migração, é medir o custo de latência das verificações referenciais no próprio workload antes de assumir o recurso em produção.
| Aspecto | PostgreSQL tradicional | Aurora DSQL com FK |
|---|---|---|
| Verificação de integridade | Locks e triggers nativos | Snapshot consistente por transação e KEY SHARE no commit |
| Conflito de concorrência | Espera por bloqueio | Erro de serialização; retry na aplicação |
| Bloqueio de leituras | Possível em alguns cenários | Leitores nunca abortam nem bloqueiam outros leitores |
| Custo de DML | Overhead local de índices | Leituras adicionais em tabelas referenciadas e referenciadoras |
Arraste para o lado para ver toda a tabela.
Profissionais com experiência em bancos de dados e cloud seguem disputados no mercado, como mostram as vagas de Cloud Database Engineer sênior abertas no portal.
Fonte: Infoq