1 Principios (aplicables a todo el manual)
- Fuente de verdad única: cada proceso, métrica o dato tiene un único documento/owner reconocido.
- Mínimo privilegio: accesos otorgados por rol y tarea, revisados trimestralmente.
- Compatibilidad controlada: contratos de API versionados; cambios breaking sólo en versiones mayores.
- Observabilidad por diseño: logs estructurados, trazas por GUID y métricas por dominio.
- Automatizar primero: evitar tareas manuales repetibles; si es manual, documentar runbook.
- Datos de calidad: validaciones a la entrada; catálogos y tipos canónicos compartidos.
- Reutilización: componentes, plantillas y librerías comunes antes que soluciones ad‑hoc.
- Auditable: decisiones y cambios con ticket, aprobación y changelog.
2 Definiciones y glosario mínimo
Término | Definición | Ejemplo / Nota |
---|---|---|
Tenant | Instancia lógica de un cliente, con config. y datos aislados. | tenant_id=rtimadrid |
Servicio | Solicitud de transporte (unidad operativa) con ciclo de vida. | Creado → Asignado → En curso → Completado/Cancelado |
Despacho | Proceso de asignación de servicios a vehículos/conductores. | Algoritmo + reglas por tenant |
Evento | Registro puntual con sello de tiempo, actor y payload. | SERVICE.ASSIGNED , DRIVER.LOCATION.UPDATE |
GUID | Identificador global único, usado para traza end‑to‑end. | guid=7f9f… propagado en headers |
SLA | Compromiso de nivel de servicio (respuesta/solución, cobertura). | SLA.incidentes=P1<15m, P2<2h |
Runbook | Procedimiento repetible, paso a paso. | “Rotación de credenciales” |
Playbook | Guía para decisiones/escalados. | “Incidencias de geolocalización” |
PII | Datos personales identificables (RGPD). | Teléfono, matrícula asociada a persona |
Changelog | Historial de cambios publicados. | v1.2: nuevo webhook SERVICE.CANCELLED |
3 Convenciones de nombres y formatos
Identificadores
tenant_id
:^[a-z0-9-]{3,32}$
(kebab‑case, sin espacios).service_id
,vehicle_id
,driver_id
: UUID v4 (36 chars) o ULID.
Eventos y tópicos
- Nombres en MAYÚSCULAS.PRESENTE con dominio:
SERVICE.CREATED
,PAYMENT.AUTHORIZED
. - Campos obligatorios en payload de evento:
guid
,tenant_id
,occurred_at
(ISO‑8601 UTC),source
,version
.
Fechas y horas
- ISO‑8601 UTC (
2025-10-07T18:30:00Z
). Almacenar en UTC; convertir sólo en presentación.
Unidades
- Distancia metros/km; tiempo en segundos; precios en EUR (minor units = céntimos).
Códigos de estado (HTTP‑like)
2xx
éxito,4xx
error de cliente (validación, permisos),5xx
error servidor.
4 Estados y ciclos de vida
Servicio
CREATED → DISPATCHING → ASSIGNED → EN_ROUTE → ON_BOARD → COMPLETED
- Cancelaciones:
CANCELLED_BY_USER | CANCELLED_BY_OPERATOR | NO_SHOW
(todas terminales)
Conductor
OFFLINE → STANDBY → BUSY → BREAK → OFFLINE
Incidencia
OPEN → IN_PROGRESS → WAITING_INPUT → RESOLVED → CLOSED
- Severidad:
P1 (bloqueante), P2 (alta), P3 (media), P4 (baja)
5 Criterios de calidad (Do / Don’t)
Do
- Validar payloads contra esquemas (JSON Schema v2020‑12).
- Registrar
guid
ytenant_id
en cada log/trace. - Definir precondiciones/postcondiciones en procesos.
Don’t
- No usar timestamps locales en almacenamiento.
- No introducir campos sin owner ni versión.
- No exponer PII en logs.
6 RACI (responsabilidades sobre definiciones)
Artefacto | R | A | C | I |
Glosario y catálogos | Datos | PMO | Ingeniería | Operaciones |
Esquemas de evento | Ingeniería | Producto | Operaciones | Soporte |
Estados/ciclos de vida | Producto | PMO | Ingeniería | Clientes |
7 Mantenimiento del glosario
- Cambios vía ticket con plantilla (término, definición, owner, impacto).
- Revisión mensual en Comité de Datos.
- Publicación con versión y fecha; difundir en canal
#manuales
.