Context
Echipele care vând pe mai multe marketplace-uri au nevoie de imagini de produs consecvente, aliniate cu brandul și care pot fi produse în volume pe care fotografia clasică de studio nu le poate susține. Fiecare SKU nou, fiecare actualizare sezonieră și cerințele specifice fiecărui canal adaugă un volum de muncă ce nu poate fi gestionat doar prin angajarea altor fotografi.
Problema reală de inginerie ține de capacitatea de procesare și de predictibilitate: multe imagini pentru fiecare job, etape cu un consum mare de resurse și rezultate care trebuie să respecte cerințele fiecărui canal înainte de publicare.
Ce am construit
Fluxul acoperă ingestia, procesarea imaginilor, execuția în lot și exportul către canalele de vânzare.
- Ingestie — încărcare în masă a fotografiilor sursă, fiecare fișier fiind urmărit ca element separat pe parcursul tuturor etapelor următoare, pentru ca orice rezultat să poată fi legat de fișierul din care provine.
- Pipeline de imagini — procesarea este un lanț de pași distincți (eliminarea fundalului, generare, verificarea rezultatului și revizuire), nu un singur apel opac, astfel încât un element eșuat poate fi reîncercat, iar un rezultat poate fi regenerat din datele de intrare curățate sau din rezultatul curent, fără refacerea întregului lot.
- Execuție în lot — procesele de durată intră în coadă și sunt preluate de workeri de fundal, nu de ciclul cerere-răspuns, astfel încât un lot mare supraviețuiește unui deploy, iar eșecul unui element nu oprește întregul job.
- Revizuire — rezultatele generate sunt verificate înainte să iasă din sistem. Rezultatele generate în lot sunt utile numai dacă pot fi aprobate sau regenerate eficient, inclusiv la volume mari, astfel încât interfața de revizuire contează la fel de mult ca modelul.
- Export către marketplace — imaginile finale sunt exportate folosind preseturi de dimensiune și format specifice fiecărui canal, iar magazinele conectate (Shopify, WooCommerce) pot primi rezultatul direct pe pagina produsului.
Stack
O aplicație Next.js/TypeScript peste Postgres, cu BullMQ pe Redis pentru joburile de lot și de pipeline și un proces worker separat, stocare locală sau S3 pentru fișierele sursă și cele derivate, plus modele de imagine găzduite de doi furnizori, în spatele unei singure interfețe restrânse cu fallback automat — deoarece modelele de imagine se schimbă mult mai repede decât cerințele produsului.
Status
Studiu de caz la cerere. Metricile detaliate și referințele de la clienți sunt disponibile la cerere, sub NDA.