( uid_4656 | 2021. 09. 28., k – 16:00 )

Amúgy szerintem tök érdekes architektúrát tervezni ehhez az egészhez.

Maga a szavazás hótt egyszerű dolog: jön 8 millió üzenet, ezeket kell valami nagyon perzisztens tárolóba minél gyorsabban beírni --> erre egy log típusú megoldás kell, tipikusan valami queue, a gyakorlatban meg ma a Kafka a menő rá azok közül, amit magadnak is tudsz hostolni. Ezzel biztosítod azt, hogy a leadott szavazatok jól meglegyenek megfelelő redundanciával.

A szavazatszámlálás lehet bármilyen lassú, és csak annyiból áll, hogy végigolvasod a logot, vagy elolvasod az üzeneteket a queue-ból, a gyakorlatban végigolvasod az elejétől a végéig a Kafka topicot, és megszámolod, kire hány szavazat jött. Ez nagyon könnyű.

Ami szerintem kihívás az egészben az azt megoldani, hogy egy ember legfeljebb egyszer szavazhasson, úgy, hogy se az ember adataiból ne lehessen előkeresni, hogy kire szavazott, se a szavazatból ne lehessen visszakövetni, hogy ki adta le. Ez az azonosítás az, amiben igazi kihívás van, és teljesen automatikusan és gyorsan nem kezelhető - csak azzal biztosíthatóak a feltételek, ha ez a rész direkt lassú. (Hozzáteszem: lassú != erőforrásigényes).

Erre ha van valakinek jó ötlete, akkor elmondom miért nem jó :-D