Primer

Radovi / Marketplejs

Sagrađen oko prodavaca.

Oglasi, pretraga i isplate delili su isti kod, a izmena prodavca čekala je da je noćna obrada primeti.

Uloga
Inženjering platforme i proizvoda
Godina
2025
Obim
Arhitektura, izrada, primopredaja
Tehnologije
TypeScript · Next.js · PostgreSQL

Ilustrativan primer. Nijedan klijent se ovde ne imenuje dok nemamo njegovu pisanu saglasnost.

Podaci o projektu

Klijent
Nezavisni operater marketplejsa
Sektor
Marketplejs
Sastav tima
Dva inženjera, dizajner sa pola radnog vremena
Saradnja
Jedan neprekidan angažman, nedeljni demo

Studija slučaja

Izazov

Marketplejs je rastao onako kako to obično biva: jedna aplikacija koja objavljuje artikle, pretražuje ih, naplaćuje i zatim isplaćuje novac. Svaki od tih poslova nosio je svoj rizik pri objavi, a svi su delili isti deploy.

Prodavci su to prvi osetili. Promena cene, nova fotografija ili zatvoren oglas išli su u red čekanja i pojavljivali se u prodavnici tek posle noćne obrade. Podrška je jutra provodila objašnjavajući zastoj za koji niko nije video razlog.

Pristup

Nismo krenuli od pisanja svega iznova. Krenuli smo tako što smo iscrtali šavove koji su već postojali — mesta na kojima kod menja temu — i dogovorili koji od njih zaslužuju ugovor. Oglasi, pretraga i isplate izdvojili su se kao tri servisa sa tipiziranim interfejsima, dok prodavnica čita iz indeksa koji se po potrebi gradi iznova.

  • Pisani ugovor za svaki servis pre nego što se kod pomeri.
  • Jedan po jedan šav, svaki iza prekidača i svaki spreman za demo.
  • Stari put je radio sve dok novi nije davao iste rezultate u produkciji.

Ishod

Izmena prodavca sada se upisuje jednom i čita direktno u prodavnici, pa noćna obrada više ne odlučuje kada prodavnica izgleda ispravno. Pretraga se može indeksirati iznova bez zadiranja u plaćanja, a plaćanja se objavljuju bez čekanja na pretragu.

Priča na ovoj strani je ilustrativna. Kada objavimo stvarnu studiju slučaja, ona nosi klijentov sopstveni opis ishoda, uz njegovu saglasnost, a svaki broj u njoj je njegov.

Prodavnica

Jedan katalog, koji obe strane čitaju isto.

Problem

Sve je čekalo istu noćnu obradu.

Oglase, dokumente za pretragu i zapise o isplatama upisivala je ista aplikacija u istoj transakciji, pa je izmena bilo čega od toga značila objavu sve tri celine.

Noćno indeksiranje bilo je jedino što je prodavnicu dovodilo u sklad sa bazom. Dok se ne bi izvršilo, prodavac i kupac gledali su dve različite prodavnice.

  • Izmene prodavaca čekale su noćno indeksiranje.
  • Ispravka u plaćanjima nije mogla da izađe bez objave pretrage.
  • Podrška je taj zastoj trpela kao pritužbu bez objašnjenja.
Pre: jedan deploy, tri odgovornosti.

Pristup

Tri servisa, tri ugovora.

Podelili smo posao po šavovima koje je domen već imao, a ne po onima koji bi lepo izgledali na dijagramu. Servis oglasa je vlasnik onoga što prodavac upiše, pretraga onoga kako se to pronalazi, a isplate onoga što je obračunato — i svaki od njih objavljuje tipizirani ugovor kojeg se ostali drže.

Ništa nismo prebacili odjednom. Na svakom šavu stari i novi put radili su uporedo iza prekidača, sve dok se novi nije izjednačio sa starim na stvarnom saobraćaju; tek je tada stari uklonjen.

  • Tipizirani ugovor po servisu, napisan pre podele.
  • Stari i novi put uporedo dok se novi nije izjednačio.
  • Indeks prodavnice koji se gradi iznova bez objave.
Posle: tri servisa, jedna prodavnica.

Njihovim rečima

Prodavci odmah vide svoje izmene, pa je iz naše podrške nestala čitava kategorija pritužbi.
Đorđe PopovićPrimerOperativni direktorExample Market

Ilustrativan citat. Stvarne preporuke objavljujemo samo uz saglasnost klijenta.

Detalji

Tri ekrana koja prodavac zaista koristi.

Ova studija slučaja je ilustrativan primer. Klijent, citat i sve slike na ovoj strani stoje samo kao privremeni sadržaj — nijednog stvarnog klijenta ne imenujemo i nijedan njegov podatak ili rezultat ne objavljujemo dok nemamo pisanu saglasnost.

Sledeći korak

Da li vam platforma stoji na putu?

Ako izmena jednog dela proizvoda znači objavu celog proizvoda, takav čvor smo već razmrsivali. Opišite nam ga svojim rečima, a mi ćemo iskreno reći šta bismo uradili u prve dve nedelje.