Events
Este microservicio utiliza Amazon SNS (Simple Notification Service) para publicar eventos cuando ocurren cambios en el estado de los reportes de mermas. Estos eventos permiten a otros sistemas reaccionar a estos cambios de manera desacoplada.
Visión General de Mensajería
Section titled “Visión General de Mensajería”La mensajería asíncrona es una parte fundamental de la arquitectura de este microservicio. Permite:
- Desacoplamiento: Los productores y consumidores de eventos no necesitan conocerse entre sí.
- Escalabilidad: Los sistemas pueden escalar independientemente.
- Resiliencia: Los fallos en un sistema no afectan directamente a otros.
- Observabilidad: Los eventos proporcionan una traza de las acciones realizadas en el sistema.
El microservicio actúa como productor de eventos, publicando mensajes en temas SNS cuando ocurren cambios significativos en los reportes de mermas.
Evento Waste Report Created
Section titled “Evento Waste Report Created”ARN de Producción:
arn:aws:sns:us-east-1:849786826922:waste-report-created-topicARN de Staging:
arn:aws:sns:us-east-2:529305108461:waste-report-created-topicPropósito: Notifica que se ha creado un nuevo reporte de merma en el sistema. Este evento se emite cuando un usuario reporta una merma de producto en un almacén.
Formato del Mensaje:
interface ReportedWasteProductMessage { id: string; product: { name: string; ean: string; sku: string; image?: string; }; quantity: number; location: string; container?: string; reason: string; reportedBy: string; reportedAt: string; // ISO 8601 warehouse: string; country: string;}Evento Waste Report Validated
Section titled “Evento Waste Report Validated”ARN de Producción:
arn:aws:sns:us-east-1:849786826922:waste-report-validated-topicARN de Staging:
arn:aws:sns:us-east-2:529305108461:waste-report-validated-topicPropósito: Notifica que un reporte de merma ha sido validado. Este evento se emite cuando un supervisor valida un reporte de merma previamente creado.
Formato del Mensaje:
interface ValidatedWasteProductMessage { id: string; product: { name: string; ean: string; sku: string; image?: string; }; quantity: number; location: string; container?: string; reason: string; reportedBy: string; reportedAt: string; // ISO 8601 validatedBy: string; validatedAt: string; // ISO 8601 warehouse: string; country: string;}Evento Waste Report Confirmed
Section titled “Evento Waste Report Confirmed”ARN de Producción:
arn:aws:sns:us-east-1:849786826922:waste-report-confirmed-topicARN de Staging:
arn:aws:sns:us-east-2:529305108461:waste-report-confirmed-topicPropósito: Notifica que un reporte de merma ha sido confirmado. Este evento se emite cuando un gerente confirma un reporte de merma previamente validado.
Formato del Mensaje:
interface ConfirmedWasteProductMessage { id: string; product: { name: string; ean: string; sku: string; image?: string; }; quantity: number; location: string; container?: string; reason: string; reportedBy: string; reportedAt: string; // ISO 8601 validatedBy: string; validatedAt: string; // ISO 8601 confirmedBy: string; confirmedAt: string; // ISO 8601 warehouse: string; country: string;}Evento Waste Report Rejected
Section titled “Evento Waste Report Rejected”ARN de Producción:
arn:aws:sns:us-east-1:849786826922:waste-report-rejected-topicARN de Staging:
arn:aws:sns:us-east-2:529305108461:waste-report-rejected-topicPropósito: Notifica que un reporte de merma ha sido rechazado. Este evento se emite cuando un supervisor o gerente rechaza un reporte de merma.
Formato del Mensaje:
interface RejectedWasteProductMessage { id: string; product: { name: string; ean: string; sku: string; image?: string; }; quantity: number; location: string; container?: string; reason: string; reportedBy: string; reportedAt: string; // ISO 8601 rejectedBy: string; rejectedAt: string; // ISO 8601 rejectionReason: string; warehouse: string; country: string;}