udistrital / planeacion_cliente

:heavy_check_mark: Check: Cliente del proyecto de planeación de la universidad Distrital
0 stars 0 forks source link

Optimización Notificaciones (PARTE 3) Alistamiento Salida a producción. #1197

Closed a52290451 closed 3 months ago

a52290451 commented 3 months ago

De acuerdo con el listado de mejoras incluido en la documentación de Notificaciones internas, se requiere Finalizar con su implementación.

Especificaciones Técnicas

  1. Se requiere realizar ajuste en el consumo y vista de notificaciones para que se carguen en el cliente hasta un máximo de 40. Si el usuario tiene mas notificaciones en cola, se deben cargar a medida que se revisen las que están en la vista.

  2. Cuando se envía una notificación, esta no se puede ver en tiempo real, por lo que es necesario recargar la página para solicitar y obtener la lista actualizada de notificaciones.

  3. Se requiere completar el checklist de salida a producción con las tareas necesarias para su cumplimiento.

Sub Tareas

Criterios de aceptación

Requerimientos

Dependencias

Definition of Ready - DoR

Definition of Done - DoD - Desarrollo

diegobauto commented 3 months ago

Listado de los pasos a seguir para despliegue:

diegobauto commented 3 months ago

Se realizan pruebas funcionales en la implementación de tiempo real en las notificaciones con websocket: Pruebas funcionales - Notificaciones websocket

diegobauto commented 3 months ago

Actualmente, la implementación del sistema de notificaciones se ha llevado a cabo utilizando los servicios SNS y SQS de AWS, lo que permite registrar y consultar notificaciones. Sin embargo, para procesar todas las notificaciones asociadas a un usuario, dado que AWS no cuenta con un filtrado interno por cola, se ha optado por recorrer la cola en lotes de 10 mensajes, la cantidad máxima permitida por el servicio. Este proceso implica filtrar los mensajes por el documento del usuario, eliminarlos y, al finalizar, registrar nuevamente las notificaciones.

A pesar de haber implementado mejoras en el sistema, como la eliminación y el registro de notificaciones por lotes para reducir el tiempo de respuesta, al consultar las notificaciones el tiempo es alto.

Al buscar alternativas más eficientes para obtener la lista de notificaciones asociadas a un usuario, se ha encontrado que todas son inviables debido a que el servicio solo permite obtener 10 mensajes por solicitud. Además, las colas funcionan con una estructura FIFO, lo que implica que, para obtener las notificaciones más recientes, es necesario recorrer toda la cola.

diegobauto commented 3 months ago

Se añaden dos opciones de lo referente al modelo de datos para notificaciones, se tiene en cuenta prinicipalmente la primera opción debido a que se simplica todo en una colección, por lo que es mas sencillo el registro y consulta de la información:

Opción 1: notificaciones1

Opción 2: notificaciones2