Coinbase a scalat serviciul nostru Users pentru a susține peste 1,5 milioane de citiri de identitate pe secundă. Iată cum: - Am împărțit obiectul monolitic al utilizatorului în grupuri independente, logice, numite "Fragmente". - Migrarea dintr-un singur cluster MongoDB într-un sistem federat folosind atât MongoDB, cât și DynamoDB. - Pentru scrieri concurente, am implementat Controlul Optimistic al Concurenței (OCC), care folosește un câmp de versiune de resurse pentru comparație-and-swap la scriere, evitând blocajele globale lente. - Pentru garanții puternice de citire după scriere pe fluxurile critice, folosim "Tokens de prospețime". Aceste tokenuri sunt transmise la cererea de citire pentru a garanta că datele returnate sunt cel puțin la fel de proaspete ca versiunea asociată tokenului, ocolind cache-ul dacă este necesar. - Am introdus un mecanism de întrerupere a sarcinii care deviază dinamic o parte din traficul de intrare către un grup țintă fictiv atunci când serviciul detectează suprasarcină, prevenind o buclă de moarte MongoDB și permițând serviciului să se degradeze grațios. Această arhitectură ne oferă scalabilitatea necesară pentru a face față unor vârfuri masive și imprevizibile ale pieței cripto și reziliența necesară pentru a fi un serviciu pe care Coinbase îl poate construi cu încredere.