Skip to content

Events

Este documento detalla las colas de mensajes y eventos utilizados en el worker de Auto-Restocking.

El worker de Auto-Restocking utiliza AWS Simple Queue Service (SQS) para implementar un sistema basado en mensajes para procesar transacciones de entrada de inventario. El worker escucha una cola para eventos de transacciones de entrada, los procesa según reglas de negocio y actualiza operaciones de reabastecimiento cuando es necesario.

Nombre: autorestock-queue

ARN en Producción:

arn:aws:sqs:us-east-1:XXXXXXXXXXXX:autorestock-queue

ARN en Staging:

arn:aws:sqs:us-east-2:XXXXXXXXXXXX:autorestock-queue

Propósito: Recibir notificaciones sobre transacciones de entrada de inventario que necesitan ser procesadas para posibles operaciones de reabastecimiento.

Productores:

  • Sistema de Gestión de Inventario (cuando se registran entradas)

Formato del mensaje:

export interface InputEventMessage {
type: 'InputTransaction' | string
data: {
entryId: string
transactionId: string
productId: string
productEan: string
locationId: string
locationType: LocationType
containerId?: string
description: string
transactionQuantity: number
timestamp: string
}
context: {
country: string
warehouse: string
}
}

El manejo de errores y reintentos se implementa de la siguiente manera:

  1. Registro de Errores:

    • Todos los errores de procesamiento se registran utilizando el sistema de logging.
    • Diferentes tipos de errores se registran en diferentes niveles (info, warn, error) según su gravedad.
  2. Eliminación de Mensajes:

    • Los mensajes procesados con éxito se eliminan de la cola.
    • Los mensajes que fallan con ciertos errores “aceptables” (por ejemplo, EventTypeUnprocessableError, NotInputInPickingError, RestockingNotFoundError) también se eliminan, ya que reintentarlos no ayudaría.
    • Los mensajes que fallan con otros errores permanecen en la cola para reintento según las políticas de reintento de SQS.
  3. Tiempo de Visibilidad:

    • Los mensajes se procesan con un tiempo de visibilidad de 60 segundos, dando al worker tiempo suficiente para procesarlos antes de que se vuelvan visibles para otros consumidores.