Buscar en la documentación

Un cambio llega a quien puede verlo

El camino de un cambio de incidente desde la transacción hasta las pantallas abiertas de las demás personas, sin enviar datos por el canal.

Módulo realtime1 min de lecturaVer en GitHub

Cada vez que un incidente cambia (creado, editado, asignado, cambio de estado, eliminado, reabierto), las pantallas abiertas de las personas que lo pueden ver se enteran en un instante. El mensaje solo dice “este incidente cambió y cómo”; los datos se piden a la API, que aplica los permisos de quien pregunta.

Diagrama5 carriles · 11 pasos · 0 salidas de error
SíNoListadoDetalleInicioGuarda un cambio enun incidente1Confirma latransacción y emiteIncidentChanged2Calcula los canales3Envía el mensajepor la cola4Lo entrega a lossuscritos5¿Quedóasignado aotra persona?6Recibe "TeasignaronTZ-26-0142"7¿Qué pantallatiene abierta?8"Hay N incidentescon cambios ·Actualizar"9El detalle seactualiza solo10Las cifras serefrescan11
Los números coinciden con el paso a paso. En pantallas pequeñas el diagrama se desliza de lado.

Paso a paso

  1. Quien cambiaGuarda un cambio en un incidente

    Su pestaña envía X-Socket-ID en cada petición, para no avisarse a sí misma.

  2. APIConfirma la transacción y emite IncidentChanged

    El evento sale solo después del commit (ShouldDispatchAfterCommit): si la transacción falla, nadie recibe un aviso falso. Lleva el ULID, el tipo de cambio, quien lo creó y el asignado antes y después.

  3. APICalcula los canales

    El general; el de sin asignar si lo estaba antes o lo está ahora; y el personal de quien lo creó, de quien lo tenía y de quien lo tiene.

  4. ColaEnvía el mensaje por la cola

    incident.changed con {id, change}, a todos menos a la pestaña que hizo el cambio (toOthers).

  5. ReverbLo entrega a los suscritos
  6. API¿Quedó asignado a otra persona?

    Si quien cambió se lo tomó a sí mismo, no hay aviso extra.

  7. Quien miraRecibe "Te asignaron TZ-26-0142"

    Por su canal personal (incident.assigned), con enlace al incidente. El título se pide a la API.

  8. Quien mira¿Qué pantalla tiene abierta?
  9. Quien mira"Hay N incidentes con cambios · Actualizar"

    No mueve las filas mientras la persona lee; actualiza cuando ella quiere.

  10. Quien miraEl detalle se actualiza solo

    Con su historial. Si ya no lo puede ver, la API responde 404 y la pantalla lo quita. Un formulario de edición abierto avisa sin borrar el borrador.

  11. Quien miraLas cifras se refrescan

    Como máximo una vez cada 10 s, y nunca mientras se personaliza.

Dónde está en el código