Sobes.tech

Golang

Použitie ScyllaDB pred producentom je antipattern. Ako správne zorganizovať deduplikáciu?

Senior
149

Pretpostavimo da smo velika oglasna mreža. Postavljamo bannere na partnerskim sajtovima širom sveta. Moramo da dizajniramo sistem za prikupljanje i obradu događaja u realnom vremenu. Ovi podaci su kritični za dva cilja: Fakturisanje: Oduzimanje novca od oglašivača za klikove. Analitika: Prikaz trenutne efikasnosti kampanja (CTR, prikazi) u ličnom panelu. Ulazni podaci (za računanje opterećenja) Morate sami proceniti potrebne kapacitete (RPS, saobraćaj, skladište), na osnovu sledećih metrika: Partner mreža: 500.000 aktivnih sajtova. Saobraćaj: U proseku, svaki sajt prima 2 prikaza stranica po sekundi. Reklamni blokovi: Na svakoj stranici se istovremeno prikazuju 3 banera. Konverzija: Prosečan CTR (Click-Through Rate) je 1%. Nepravilnost: Pikovno opterećenje (večernji sati) je 4 puta više od proseka. Veličina događaja: Objekat događaja (ID banera, ID sajta, UserID, Timestamp, tip događaja) teži otprilike 500 bajtova. Tehnički zahtevi Near Real-Time: Podaci u analitičkom interfejsu treba da se pojavljuju sa zakašnjenjem ne većim od 10 sekundi. Pouzdanost: Gubitak klikova nije prihvatljiv (ovo znači direktan gubitak novca). Gubitak prikaza (impressions) je prihvatljiv do 0,01%. Skalabilnost: Sistem treba lako da se proširuje sa rastom broja platformi.

Senior
139

Prečo musíme ukladať surové údaje do úložiska S3? Je správne použiť TTL 5 minút v Redis, alebo je lepšie ich ukladať dlhšie — 24 hodín, a použiť ScyllaDB ako zdroj overovania údajov?

Senior
117