Temporal Workers
Langlopende, retry-safe datapipelines: de ruggengraat op de achtergrond van GetMike.
Een TypeScript Temporal worker package dat klanten, orders, producten, categorieën, attributen en embeddings synchroniseert van Mavis ERP en NopCommerce naar Supabase, en staged data daarna transformeert naar productietabellen die GetMike gebruikt.
De opdracht was om een betrouwbare datasync-pipeline te maken. Daarom kozen we Temporal Workers als workflow engine en nam een senior developer/collega de Elasticsearch-configuratie op zich. Ik ontwikkelde de kern-Temporal workflows en activities: retries, heartbeats, resume-from-state-logica, transforms en Supabase staging/productie-writes.
Wat in de weg stond.
GetMike's antwoorden zijn maar zo goed als de data erachter. ERP- en commerce-APIs zijn traag, fragiel, pagineren anders per tenant en zijn te groot voor een broos nightly script. Fouten moesten observeerbaar, replayable en per tenant geïsoleerd zijn.
Hoe ik het opgelost heb.
Temporal workflows orchestreren deterministische sync-stappen terwijl activities alle I/O bezitten. Raw pages worden staged in Supabase met resume offsets, lange activities heartbeat'en om de paar seconden, transforms kunnen herstarten vanaf een benoemde stap en Gemini embedding batches splitsen adaptief bij een fout. Het resultaat is een retry-safe pipeline die kan herstellen van gedeeltelijke fouten zonder ongemerkt uit sync te raken.