CONCURRENCIA
Actualización optimista
Cada cambio presenta su versión esperada; un estado obsoleto genera una respuesta de conflicto.
CASO DE ESTUDIO · RELEASE 0.1.0
Una aplicación con dos interfaces: Administración asigna y supervisa las rutas; Campo registra las visitas desde el móvil. Construí la API, las reglas de negocio y ambas interfaces. La demo utiliza únicamente personas, direcciones y geometrías ficticias.
EL PRODUCTO EN TRES PASOS
Un recorrido visual sin instalar el proyecto. Son capturas reales de la demo local sintética, no una aplicación interactiva en esta página. Puedes abrir cada imagen para verla a tamaño completo.
01 · ADMINISTRACIÓN
Administración vincula un recorrido a un integrante del equipo. El servidor comprueba que el usuario tenga una sola asignación activa y que no se compartan puntos entre asignaciones incompatibles.

02 · CAMPO
El operador abre un punto de su ruta y registra el resultado de la visita. La API valida su permiso y la versión del registro para detectar cambios simultáneos.

03 · SEGUIMIENTO
Administración consulta cuántos puntos se visitaron y sus resultados. La prueba de extremo a extremo comprueba que registrar una visita cambia el contador de 0/72 a 1/72.

01 · RETO
Un recorrido no puede asignarse como una colección de filas aisladas. El sistema debe impedir solapamientos, mantener una sola asignación activa por usuario y aceptar reintentos sin duplicar efectos.
Campo y Administración observan el mismo estado desde perspectivas distintas. Las reglas sensibles viven en servidor y base de datos: la interfaz no decide por sí sola a qué ruta pertenece un operador ni cuál versión de una visita es válida.
02 · FLUJO
El comando de demo comprueba el entorno, levanta API y ambas interfaces, espera readiness y carga una ruta determinista. Repetirlo no mezcla datos ni sobrescribe una configuración local diferente.
Semilla fija produce puntos, segmentos, predios, huellas y manifiesto SHA-256.
La importación CSV y la publicación de la ruta son idempotentes.
Exclusividad y pertenencia se validan de forma transaccional.
Campo registra uno de seis resultados operacionales permitidos.
Versiones optimistas convierten una edición obsoleta en conflicto explícito.
Administración recibe el avance agregado del mismo estado canónico.
Registrar una visita en Campo cambió el contador de Administración de 0/72 a 1/72. La ejecución utilizó únicamente la ruta sintética incluida en la release pública.
03 · INGENIERÍA
CONCURRENCIA
Cada cambio presenta su versión esperada; un estado obsoleto genera una respuesta de conflicto.
IDEMPOTENCIA
Importación, publicación y comandos críticos mantienen una identidad estable ante repeticiones.
AISLAMIENTO
Sesiones revocables, pertenencia de ruta y rate limiting protegen los flujos expuestos.
TRAZABILIDAD
La persistencia PostgreSQL registra cambios y acompaña backups con restauración verificada.
INTERFAZ
Administración prioriza asignación y seguimiento; Campo prioriza avance móvil, mapa y lista.
CALIDAD
Formato, lint, tipos, secretos, datos privados, pruebas y cuatro builds se verifican en CI.
04 · LÍMITES
SEPARACIÓN
La release es una copia preparada para demostración; el sistema personal desplegado no fue modificado.
SIGUIENTE NIVEL
Una operación sensible necesitaría roles PostgreSQL separados, observabilidad y pruebas independientes.
EVIDENCIA PÚBLICA
El repositorio incluye el generador determinista, las dos interfaces, la API, las migraciones, documentación de seguridad y el comando que levanta la demo local completa.