Events
Este documento proporciona una visión general de las colas SQS y los eventos SNS utilizados en el Data Inventory Worker.
Visión General
Section titled “Visión General”El Data Inventory Worker utiliza AWS SQS (Simple Queue Service) para recibir mensajes de eventos de inventario y AWS SNS (Simple Notification Service) para publicar eventos de transacciones de inventario procesados. Esta arquitectura orientada a eventos permite el desacoplamiento de servicios y el procesamiento asíncrono de datos de inventario.
Colas SQS
Section titled “Colas SQS”Cola de Inventario de Datos
Section titled “Cola de Inventario de Datos”URL de la Cola: Configurada a través de la variable de entorno
QUEUE_DATA_INVENTORY_URLPropósito: Recibe mensajes de eventos de inventario del sistema Inventory Manager
Formato del Mensaje:
type TransactionEventMessage = EventMessage< 'InputTransaction' | 'OutputTransaction', { /* Entry */ entryId: string; stock: number; /* Product */ productId: string; productEan: string; productSku: string; expirationDate?: string; lot?: string; /* Location */ locationId: string; locationName: string; locationType: LocationType; locationZone?: Zone; /* Container */ containerId?: string; containerName?: string; /* Transaction */ transactionId: string; description: string; transactionQuantity: number; timestamp: string; }>;
interface EventMessage<T, D> { type: T; data: D; context: { country: string; warehouse: string; };}Procesamiento: Los mensajes son recibidos por el AwsQueueService, procesados por el InventoryProcessor, y luego eliminados de la cola si el procesamiento es exitoso o si se cumplen ciertas condiciones de error
Eventos SNS
Section titled “Eventos SNS”Evento de Transacción de Inventario de Datos
Section titled “Evento de Transacción de Inventario de Datos”Evento: Evento de Transacción de Inventario
ARN de Producción:
TOPIC_ARN_INVENTORY_TRANSACTIONARN de Staging:
TOPIC_ARN_INVENTORY_TRANSACTIONPropósito: Publica eventos de transacciones de inventario procesados a los suscriptores para análisis de datos
Formato del Mensaje:
export interface DataEvent { PRODUCT_ID: string EAN?: string EVENT_DATETIME: string COUNTRY: string WAREHOUSE_ID: string WAREHOUSE_CODE: string QUANTITY: number CURRENT_INVENTORY: number LOCATION: string LOCATION_TYPE: string LOCATION_ZONE?: string CONTAINER?: string EXPIRATION_DATE?: string LOT_NUMBER?: string MOVEMENT_TYPE: 'ENTRADA' | 'SALIDA' ENTRY_ID: string TRANSACTION_ID: string}Flujo de Mensajes
Section titled “Flujo de Mensajes”- El worker recibe mensajes de la cola SQS de Inventario de Datos
- Procesa los mensajes, validándolos y transformándolos al formato esperado por los servicios de datos
- Publica los eventos procesados en el tema SNS de Transacción de Inventario de Datos
- Los suscriptores del tema reciben los eventos y los procesan para análisis de datos
Esta arquitectura orientada a eventos permite el desacoplamiento de servicios y el procesamiento asíncrono de datos de inventario, haciendo que el sistema sea más escalable y resiliente.