Al het werk
Project05

Temporal Workers

Langlopende, retry-safe datapipelines: de ruggengraat op de achtergrond van GetMike.

DisciplineBackground processing
Jaar2026
RolDatasync-pipeline developer
SectorInfrastructuur
Temporal Workers product interface screenshotTEMPORAL WORKERS· HERO · 16:9
Overzicht

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.

Uitdaging & Aanpak
De Uitdaging

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.

De Aanpak

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.

Stack — volledig overzicht
Runtime
Node 22TypeScripttsxTemporal TypeScript SDK
Databronnen
Mavis ERPNopCommerceCustom REST adapters
Opslag / zoeken
SupabasePostgrespgvectorElasticsearch
AI-pipeline
Gemini embedding-001Batch embeddingsL2 normalization
Ops
Temporal CloudmTLSGraceful shutdownWorkflow status tables
Vorige

Scanapp

Volgende

CarbWatch