WheyScore Backend Node

Backend automatizado para rastreo de precios, informes, webhooks y notificaciones.

Cubierta ilustrativa de WheyScore Backend Node con jobs programados y monitoreo.

Problema

Monitorear precios, generar reportes y disparar notificaciones exige rutinas confiables en background — sin depender de intervención manual cuando un job falla o un marketplace cambia el layout.

Solución e impacto

Backend Node.js con MySQL, node-cron para rutinas de rastreo y reportes, Winston para logs estructurados y webhooks para alertas de fallo. Docker para despliegue reproducible. El resultado es automatización orientada a producto con observabilidad pragmática, sin APM enterprise.

Arquitectura y trade-offs

Trade-off: node-cron dentro del proceso en vez de una cola externa (BullMQ/Redis) — suficiente para el volumen actual, con el costo de retries y aislamiento limitados. Separación clara entre jobs de recolección, persistencia en MySQL y la capa de notificación vía webhooks. Winston centraliza logs para troubleshooting post-deploy.

Diagrama del WheyScore Backend: node-cron, API Node.js, MySQL, Winston, webhooks y Docker

Operación y observabilidad

Healthchecks HTTP, logs Winston estructurados y webhooks para fallos de job. Sin dashboard de APM — alertas y logs son la primera línea de defensa. Rollback vía redeploy del contenedor Docker.

Desafíos técnicos

Garantizar que los jobs programados no dupliquen trabajo tras un restart, mantener webhooks confiables cuando las APIs externas fallan, y balancear la simplicidad operacional con la necesidad futura de métricas por job.

Qué haría diferente

Con mayor volumen, migraría los jobs críticos a una cola con retries explícitos. Hoy el diseño cron + webhooks es adecuado; adelantaría contadores de fallo por job en el log para reducir el tiempo de diagnóstico.

Contexto técnico

  • node-cronAgendamientoRutinas de rastreo y reportes
  • WinstonLogsLogging estructurado

Decisiones documentadas (ADR)

Stack

  • Node.js
  • MySQL
  • node-cron
  • Winston
  • Webhooks
  • Docker