Coinbase escaló nuestro servicio de Usuarios para sostener más de 1.5M lecturas de identidad/segundo. Así es como: - Descompusimos el objeto de usuario monolítico en grupos lógicos independientes llamados "Fragmentos." - Migramos de un único clúster de MongoDB a un sistema federado utilizando tanto MongoDB como DynamoDB. - Para escrituras concurrentes, implementamos Control de Concurrencia Optimista (OCC), que utiliza un campo de versión de recurso para una comparación e intercambio en la escritura, evitando bloqueos globales lentos. - Para garantías de lectura después de la escritura fuertes en flujos críticos, utilizamos "Tokens de Frescura." Estos tokens se pasan en la solicitud de lectura para garantizar que los datos devueltos sean al menos tan frescos como la versión asociada con el token, eludiendo la caché si es necesario. - Introdujimos un mecanismo de reducción de carga que desvía dinámicamente una parte del tráfico entrante a un grupo objetivo ficticio cuando el servicio detecta sobrecarga, previniendo un bucle de muerte de MongoDB y permitiendo que el servicio se degrade de manera controlada. Esta arquitectura nos brinda la escalabilidad para manejar los picos masivos e impredecibles del mercado de criptomonedas y la resiliencia para ser un servicio en el que Coinbase pueda construir con confianza.