-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or requestperformanceMelhoria de performanceMelhoria de performance
Description
Título: Replace random ID generation with ULID/UUID for collision safety
Labels: medium, reliability, id-generation
Prioridade: MÉDIA
Problema Atual (Ponto 6 do Feedback):
- RandomID com potencial de colisão
- Falta de estratégia centralizada
Solução Proposta:
// Core - Domain Service (interface)
public interface IdentityGenerator {
String generateId();
String generateCorrelationId();
}
// DataProvider - ULID Implementation
@Service
public class UlidIdentityGenerator implements IdentityGenerator {
private final UlidCreator ulidCreator = UlidCreator.getMonotonicUlid();
@Override
public String generateId() {
return ulidCreator.create().toString();
}
@Override
public String generateCorrelationId() {
return UUID.randomUUID().toString(); // Para correlação, UUID é suficiente
}
}
// PostgreSQL - Usando UUID nativo
ALTER TABLE wallets ALTER COLUMN id SET DEFAULT gen_random_uuid();
ALTER TABLE wallet_transactions ALTER COLUMN id SET DEFAULT gen_random_uuid();Tarefas:
-
Adicionar dependência ULID
<dependency> <groupId>com.github.f4b6a3</groupId> <artifactId>ulid-creator</artifactId> <version>5.2.0</version> </dependency>
-
Implementar UlidIdentityGenerator
-
Configurar PostgreSQL para UUID default
-
Substituir todas as gerações manuais
-
Testes de unicidade/performance
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestperformanceMelhoria de performanceMelhoria de performance