Skip to content

Events

Este documento proporciona información sobre las colas SQS y los eventos SNS utilizados en el Worker de Reabastecimiento de Datos.

El Worker de Reabastecimiento de Datos utiliza AWS Simple Queue Service (SQS) para recibir mensajes que contienen eventos de reabastecimiento y AWS Simple Notification Service (SNS) para publicar eventos procesados a los consumidores. Esta arquitectura sigue el patrón publicador-suscriptor, permitiendo un procesamiento de eventos desacoplado y escalable.

URL de la Cola: Configurada mediante la variable de entorno

QUEUE_URL_RESTOCKING_DATA

Propósito: Recibe eventos de reabastecimiento y reposición para su procesamiento

Tiempo de Visibilidad: Configurado mediante la variable de entorno SQS_VISIBILITY_TIMEOUT (predeterminado: 60 segundos)

Formato del Mensaje: Mensajes JSON que contienen datos de eventos con la siguiente estructura:

export interface Restocking {
restockingId: string
productId?: string
productEan: string
productSku: string
productName?: string | null
type: RestockingType
level: RestockingLevel
status: RestockingStatus
}
export interface RestockingEventData
extends EventMessage<
'RestockingCreated' | 'RestockingUpdated' | 'RestockingCompleted',
Restocking
> {}
export interface Restock {
id: string
ean: string
target: string
source: string
quantity: number
user: string
timestamp: ZonedDateTime
alertId?: string
level?: string
zone?: Zone
}
export interface RestockEventData extends EventMessage<'RestockRegistered', Restock> {}
interface EventMessage<T, D> {
type: T
data: D
context: {
country: string
warehouse: string
}
}

Procesamiento: Los mensajes se reciben en lotes (hasta 10 mensajes por lote) y se procesan secuencialmente

Política de Eliminación: Los mensajes se eliminan de la cola después de un procesamiento exitoso o cuando encuentran ciertos errores no recuperables

Evento: Datos de reabastecimiento procesados

ARN de Producción:

arn:aws:sns:us-east-1:849786826922:wms-lake-restock_alert-topic

ARN de Staging:

arn:aws:sns:us-east-2:529305108461:wms-lake-restock_alert-topic

Propósito: Publica eventos de reabastecimiento enriquecidos a los consumidores de datos

Formato del Mensaje:

export interface RestockingEvent {
ALERT_ID: string // ID único del evento de alerta
PRODUCT_ID: string // SKU del producto
EAN: string // EAN del producto
EVENT_DATETIME: string // Fecha y hora del evento
COUNTRY: string // Código de país de dos letras
WAREHOUSE_ID: string // ID del almacén
SUGGESTED_QUANTITY: number // Cantidad de demanda sugerida
ALERT_TYPE: string // Tipo de alerta (por ejemplo, "Warning", "Critical", "Urgent")
ALERT_STATUS: string // Estado de la alerta (por ejemplo, "Pending", "In Progress", "Completed", "Cancelled")
}

Evento: Datos de reposición procesados

ARN de Producción:

arn:aws:sns:us-east-1:849786826922:wms-lake-restocked_product-topic

ARN de Staging:

arn:aws:sns:us-east-2:529305108461:wms-lake-restocked_product-topic

Propósito: Publica eventos de reposición enriquecidos a los consumidores de datos

Formato del Mensaje:

export interface RestockEvent {
PRODUCT_ID: string // SKU del producto
EAN: string // EAN del producto
EVENT_DATETIME: string // Fecha y hora del evento
RESTOCKED_QUANTITY: number // Cantidad reabastecida
SOURCE_LOCATION: string // Ubicación de origen del restock
TARGET_LOCATION: string // Ubicación de destino del restock
CONTAINER_LPN?: string // LPN del contenedor, opcional
COUNTRY: string // Código de país de dos letras
WAREHOUSE_ID: string // ID del almacén
USER_EMAIL: string // Correo electrónico del usuario que realizó la acción
}
  1. Los sistemas externos publican eventos de reabastecimiento y reposición en la cola SQS
  2. El Worker de Reabastecimiento de Datos consulta la cola para obtener mensajes
  3. Para cada mensaje, el worker:
    • Valida el formato del evento
    • Verifica si el almacén está habilitado para el procesamiento
    • Enriquece el evento con información de producto y demanda
    • Transforma el evento al formato estandarizado
    • Publica el evento procesado en el tema SNS apropiado
    • Elimina el mensaje de la cola
  4. Los suscriptores a los temas SNS reciben los eventos procesados y realizan su propio procesamiento