Arquitetura Corporativa para Todos

Artigo / Post

UUID (GUID)- Algumas provocações Praticas

Tive uma reunião a algum tempo para avaliar uma solução de alta volumetria com persistência de dados; para entendimento das grandezas envolvidas, são alguns terabytes de armazenamento e algo próximo de 1 bilhão de registros.  São números significativos onde, entre outros temas relevantes e uma excelente apresentação pelo time de engenharia da épocaa escolhas de tipos de dados foram debatidas.

Um dos tipos que participaram deste discursão produtiva foi o uso de GUID como identificadores de registros. Este é um tipo recorrente em varias solução que vejo por aqui e resolvi fazer uma provocação:


Usar GUID como um identificador único **externo** e uma coisa, Usar GUID como um identificador único **interno** para representar a unicidade de dado é outra coisa!


UUID garante aleatoriedade e unicidade , características desejadas de segurança para não permitir a previsão de valores e manter um identificador único. Estas características são uteis quando precisamos expor estes identificadores para o mundo externo ou fora do domínio
de uma solução.

UUID aplicada a representar a unicidade de dado, presumindo que este dado é persistido sobre esta chave, é uma grande dor de cabeça, sabe porquê ? Como a chave não é ordenada, o banco de dados armazenar esta informação de forma não eficiente em disco, gerando uma quantidade de operações E/S em disco para encontrar o registro apropriado. Isso é custo de cpu e perda de performance (latência).

Alguns bancos de dados possuem funcionalidades para gerar uma UUID capaz de ser ordenada mas vale apena ?

  • Se acoplamento não é problema e restringir a geração somente no contexto de banco de dados então pode ser uma alternativa a ser avaliada.
    Se você desejar ter esta funcionalidade “cross” independente de contexto talvez devesse avaliar alternativas como identificadores únicos Lexicograficamente Classificáveis : ULID (https://lnkd.in/dE34e-HK)
  • Algumas de suas característicasCompatibilidade de 128 bits com UUID
  • 1.21e+24 ULIDs exclusivos por milissegundo
  • Classificável lexicograficamente!
  • Codificado canonicamente como uma sequência de 26 caracteres, em oposição ao UUID de 36 caracteres
  • Usa base32 de “Crockford” para melhor eficiência e legibilidade (5 bits por caractere)
  • Não diferencia maiúsculas de minúsculas
  • Sem caracteres especiais (URL seguro)
  • Ordem de classificação monotônica (detecta e trata corretamente o mesmo milissegundo)

Quando você escolhe trabalhar com GUIDS, quais considerações você utiliza ?


Tenham um excelente dia! Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável.

Compatilhe

0 0 votos
Avaliação Global
0 Comentários
Feedbacks embutidos
Ver todos os comentários
Categorias

Sobre o Autor

Picture of Fernando Cerqueira

Fernando Cerqueira

Eu sou Fernando Cerqueira e entrego estratégias digitais para os desafios do presente, com propostas de inovação para um futuro sustentável. Como arquiteto sênior, aproveito meus mais de 20 anos de experiência em arquitetura e desenvolvimento de software para projetar e implementar soluções baseadas em nuvem que ajudam os clientes a transformar seus negócios com tecnologia.

Outros Posts

Categorias

Porque a Lei de Conway (Um princípio de quase 60 anos!) continua tão atual

A área de tecnologia tem impacto significativo nos resultados de uma organização, porém sem um propósito ela não tem valor. Tecnologia é o parceiro ideal para área de negócio e tem um propósito : Habilitar novas oportunidades e melhorar a eficiência operacional das operações. Não existe decisões técnicas , decisões de

O “Efeito Gremlins” e os microsserviços

Introdução Todas as empresas desejam manter seus ativos de hardwares e softwares atualizados. No entanto, esbarram em custos significativos de atualizações de licenças, complexidade dos legados e ‘dívidas técnicas’ dos ativos de software. Com a adoção de microsserviços (pelos motivos corretos ou não), muitas empresas verificaram que os ativos de

HealthCheck – O que você precisa e deve saber antes de usar

A observabilidade nos aplicativos aliadas a outras ferramentas e recursos ajudam a sustentar vários indicadores de qualidade e disponibilidade, quando feita de maneira harmoniosa e correta entre todos seus elementos, sendo apoiada por três pilares : monitoramento , registro e rastreamento.  O efeito positivo da observabilidade afeta diretamente a disponibilidade

O que é preciso para ser um arquiteto corporativo?

O que é preciso para ser um arquiteto corporativo? Antes de continuar a leitura, um aviso : Já se perguntou o que está por trás (o famoso porquê) da adoção de ADR´S, C4-Models, designs patterns, Zachman, FEAF, DoDAF, MODAF e BIAN, TOGAF, CMMI e afins? 🔥 Arquitetura corporativa NÃO é

Singleton: Anti-pattern ou apenas mal interpretado?

O padrão de projeto Singleton garante que apenas uma instância de uma classe exista durante a execução de um programa, fornecendo um ponto de acesso global a essa instância. Admito que já o classifiquei imprudentemente como um anti-pattern, mas estou aqui para me redimir. O Singleton resolve um problema recorrente

"A comunicação das APIs com parceiros de negócio requer uma governança para garantir serviços auditáveis, financeiramente alinhados com a oferta do produto, preservando o ambiente e a plataforma de entrega para atender aos volumes e manter os sistemas saudáveis."

Fernando Cerqueira | Arquiteto Corporativo

Sua Reflexão

0
Adoraria saber sua opinião, comente.x