Skip to content

Events

Este documento detalla los mecanismos de cola y eventos utilizados en el worker de asignación de ubicaciones.

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.

ARN en Producción:

arn:aws:sqs:us-east-1:XXXXXXXXXXXX:product-catalog-changes.fifo

ARN en Staging:

arn:aws:sqs:us-east-2:XXXXXXXXXXXX:product-catalog-changes.fifo

Propó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álogo
  • PRODUCT_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[]
}
}
}

El worker implementa el manejo de errores y reintentos de la siguiente manera:

  1. 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
  2. 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
  3. Logging:

    • Todos los errores se registran con el contexto apropiado
    • El procesamiento exitoso se registra con métricas (tiempo de procesamiento, recuento de éxitos)
  4. 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