Retail · tienda por departamentos · 2023 — 2024
Un historial de compras repartido en siete sistemas
Una capa de caché en Redis delante de siete sistemas, refrescada en segundo plano con SNS y SQS, para que el historial no espere a ninguno.
El problema
En el historial de compras de una tienda por departamentos, el cliente ve lo que compró online y en tienda. Esos datos viven en siete sistemas distintos —entre ellos un AS/400 y la plataforma de e‑commerce—, y consultarlos todos mientras el cliente esperaba hacía lenta la pantalla.
Lo que hice
Con otro desarrollador pusimos una capa de caché en Redis delante de los siete sistemas. La app responde desde Redis y la actualización ocurre en segundo plano: un tópico SNS reparte el trabajo en una cola SQS por cada sistema de origen.
Levanté en NestJS el servicio que consulta el AS/400 de las tiendas y lo sumé a la caché, para que el historial mostrara también las compras en tienda física, con su ticket de cambio.
Cuando la generación del PDF de ese ticket empezó a fallar en producción, la pasamos a un servicio propio: hice la conversión a PDF y conecté el historial con él.
Qué pasó
El historial dejó de esperar a siete sistemas para responder, y sumó las compras hechas en tienda física.
Lo que me llevé
El trabajo más útil que hice ahí no fue agregar features: fue esconder la complejidad de siete sistemas detrás de una pantalla que carga rápido.
NestJS · Redis · AWS SNS/SQS · AS/400