Todo el trabajo
Proyecto05

Temporal Workers

Pipelines de datos largos y retry-safe: la columna vertebral en background de GetMike.

DisciplinaProcesamiento en background
Año2026
RolDesarrollador de pipeline de sincronización de datos
SectorInfraestructura
Temporal Workers product interface screenshotTEMPORAL WORKERS· HERO · 16:9
Resumen

Paquete TypeScript de Temporal workers que sincroniza clientes, pedidos, productos, categorías, atributos y embeddings desde Mavis ERP y NopCommerce hacia Supabase, y luego transforma datos staged a tablas de producción consumidas por GetMike.

La tarea era crear un pipeline fiable de sincronización de datos. Por eso elegimos Temporal Workers como motor de workflows y un senior developer/colega se encargó de la configuración de Elasticsearch. Yo desarrollé los workflows y activities principales de Temporal: retries, heartbeats, lógica de resume-from-state, transforms y escrituras staging/producción en Supabase.

Reto y enfoque
El reto

Qué estaba bloqueando el avance.

Las respuestas de GetMike solo son tan buenas como los datos detrás. Las APIs de ERP y commerce son lentas, frágiles, paginan distinto por tenant y son demasiado grandes para un script nocturno quebradizo. Los fallos tenían que ser observables, reproducibles y aislados por tenant.

El enfoque

Cómo lo resolví.

Temporal workflows orquestan pasos deterministas de sync mientras las activities poseen todo el I/O. Las páginas raw se guardan en staging en Supabase con offsets de resume, las activities largas hacen heartbeat cada pocos segundos, los transforms pueden reiniciar desde un paso nombrado y los batches de embeddings de Gemini se dividen adaptativamente al fallar. El resultado es un pipeline retry-safe que se recupera de fallos parciales sin desviarse silenciosamente.

Stack — desglose completo
Runtime
Node 22TypeScripttsxTemporal TypeScript SDK
Fuentes de datos
Mavis ERPNopCommerceCustom REST adapters
Storage / búsqueda
SupabasePostgrespgvectorElasticsearch
Pipeline de IA
Gemini embedding-001Batch embeddingsL2 normalization
Ops
Temporal CloudmTLSGraceful shutdownWorkflow status tables
Anterior

Scanapp

Siguiente

CarbWatch