Events
Este documento detalla los mecanismos de cola y eventos utilizados en el worker de asignación de ubicaciones.
Visión General
Section titled “Visión General”El worker de asignación de ubicaciones utiliza AWS Simple Queue Service (SQS) para recibir eventos de cambios de productos desde el servicio de catálogo de productos. Estos eventos desencadenan la creación o actualización de asignaciones de ubicación en los warehouses.
Cola de Eventos de Cambios de Productos
Section titled “Cola de Eventos de Cambios de Productos”ARN en Producción:
arn:aws:sqs:us-east-1:XXXXXXXXXXXX:product-catalog-changes.fifoARN en Staging:
arn:aws:sqs:us-east-2:XXXXXXXXXXXX:product-catalog-changes.fifoPropósito: Recibir notificaciones sobre cambios de productos (nuevos productos o cambios de estado) desde el servicio de catálogo de productos.
Productores:
- Product Catalog Service
Tipos de Eventos:
PRODUCT_NEW: Indica que se ha añadido un nuevo producto al catálogoPRODUCT_CHANGED: Indica que se ha actualizado un producto existente
Formato del Mensaje:
export interface EventProductChange { type: string data: { sku: string country: string barcode: string statusInfo: { published: boolean active: boolean activeWarehouses: string[] } }}Manejo de Errores y Reintentos
Section titled “Manejo de Errores y Reintentos”El worker implementa el manejo de errores y reintentos de la siguiente manera:
-
Timeout de Visibilidad del Mensaje:
- Los mensajes se ocultan inicialmente durante 30 segundos durante el procesamiento
- Si el procesamiento falla, el mensaje se vuelve visible nuevamente para reprocesamiento
-
Clasificación de Errores:
- Los errores de negocio (por ejemplo,
UnprocessableEventTypeError,AlreadyExistsAssignmentError) se registran y el mensaje se elimina - Los errores técnicos (por ejemplo, servicio no disponible) hacen que el mensaje se reintente
- Los errores de negocio (por ejemplo,
-
Logging:
- Todos los errores se registran con el contexto apropiado
- El procesamiento exitoso se registra con métricas (tiempo de procesamiento, recuento de éxitos)
-
Cola de Mensajes Fallidos (Dead Letter Queue):
- Después de múltiples intentos fallidos de procesamiento, los mensajes se envían a una cola de mensajes fallidos para análisis posterior