POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Identificadores automáticos vs manuales: ¿cuál elegir?

Identificadores globales en arquitecturas distribuidas: por qué UUID y Outbox mejoran la consistencia entre microservicios

Publicado el 24/09/2025

En sistemas tradicionales era común delegar en la base de datos la generación de identificadores incrementales enteros. Esto ofrecía ventajas claras como unicidad garantizada, índices pequeños y orden natural que ayuda a reducir la fragmentación. Sin embargo, en arquitecturas modernas basadas en microservicios o eventos esa elección puede ser limitante y provocar problemas de sincronización y consistencia.

Caso de ejemplo: imaginemos tres microservicios independientes llamados OrderService, PaymentService y ShippingService, cada uno con su propia base de datos. El servicio de pedidos guarda la orden completa con sus items, el de pagos solo necesita saber si la orden fue pagada y el de envíos necesita información de envío asociada a la misma orden. Es importante que el identificador de una orden sea el mismo en todos los servicios para poder sincronizar, consultar y unir información con facilidad.

Usando IDs autogenerados en la base de datos con enteros el flujo típico obliga a persistir la orden para obtener el ID. Eso genera dos inconvenientes importantes: no es posible crear la orden y los eventos relacionados en la misma transacción cuando se aplica el patrón Outbox, y no hay garantía de que otra instancia de la aplicación o servicio cree la misma orden con el mismo ID. La solución de añadir una columna externa orderId además del ID autogenerado complica el modelo y puede inducir errores por mal uso de identificadores.

Alternativa manual con identificadores UUID Guid. Si creamos el Id en la capa de aplicación, por ejemplo generando un Guid antes de persistir, podemos construir la orden, preparar los mensajes Outbox y persistir todo en una única transacción. Esto aporta varias ventajas: consistencia transaccional entre datos y eventos, el mismo ID puede usarse en todos los microservicios facilitando sincronización y fusión de datos, y las pruebas unitarias son más sencillas porque el Id está disponible sin necesidad de persistir la entidad.

Además, al controlar la generación del identificador podemos elegir variantes de UUID adecuadas al caso de uso. Por ejemplo UUIDv7 ofrece orden natural basado en tiempo, ayudando a cubrir parte de las ventajas de los enteros secuenciales. El riesgo de colisión en UUID bien generados es prácticamente despreciable en la práctica. El trade off es que ocupan más espacio y son menos legibles que enteros, pero en aplicaciones cloud modernas la diferencia de rendimiento y tamaño suele ser irrelevante para la mayoría de escenarios.

Aspectos técnicos y buenas prácticas. En ORMs como EF Core por defecto los identificadores pueden configurarse para que no sean generados por la base de datos; por ejemplo se debe configurar la propiedad Id para que ValueGeneratedNever y así la aplicación asume la responsabilidad de asignar valores. Para implementar Outbox es habitual añadir una tabla OutboxMessages y escribir los eventos junto con la entidad dentro de la misma transacción, y disponer de un procesador en background que publique esos mensajes al broker y marque los registros procesados.

Secuencias y limitaciones. Usar una secuencia de base de datos y pedir el siguiente valor mediante SELECT NEXT VALUE FOR MySequence permite reservar un número sin insertarlo en la tabla, pero no resuelve el problema de unicidad entre diferentes bases de datos o servicios. Si cada servicio tiene su propia base de datos, es muy probable acabar con IDs iguales en distintos servicios, lo que rompe el concepto de identidad global de la entidad.

Conclusión. Delegar totalmente la generación de IDs a la base de datos implica renunciar a una parte importante del control sobre la identidad de las entidades, lo que complica la consistencia entre servicios, la sincronización de datos y la implementación de patrones transaccionales como Outbox. La generación manual de identificadores, típicamente con UUID, es una opción sólida para arquitecturas distribuidas, aunque no exenta de trade offs. Cada proyecto debe evaluar requisitos de rendimiento, tamaño de índices, legibilidad y necesidades de integración antes de tomar la decisión.

En Q2BSTUDIO ayudamos a tomar las decisiones arquitectónicas adecuadas para productos cloud y soluciones empresariales. Somos una empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y automatización. Si necesitas desarrollar una solución personalizada podemos ayudarte desde el diseño de la identidad de dominio hasta la implementación del Outbox y la orquestación de microservicios, descubre nuestras capacidades en software a medida y aplicaciones a medida y en soluciones de inteligencia artificial y ia para empresas.

Palabras clave relevantes que aplicamos en nuestros proyectos incluyen aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si te interesa profundizar sobre arquitectura de identificadores, sincronización entre servicios o integración con soluciones cloud y BI como Power BI contacta con nuestro equipo y te asesoraremos en la mejor estrategia técnica y de negocio.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio