Aquí hay un enfoque:
- Elija un sitio web con mucho tráfico que le guste (por ejemplo, Pinterest o LinkedIn o Quora).
- Enumere las características principales y los flujos de datos para el sitio. ¿Qué pueden hacer los usuarios en el sitio? ¿Qué tipo de datos generan y consumen? ¿Cómo es probable que los sistemas internos usen esos datos? ¿Dónde van a estar los cuellos de botella?
- Intente diseñar y construir una arquitectura que aborde los desafíos y los casos de uso identificados en el paso anterior. Puede usar apéndices para funciones complejas (por ejemplo, su motor de “recomendación” puede tomar una entrada, dormir durante 20 ms y luego generar una salida constante).
- Cree un script que alimente su sistema con muchos datos aleatorios y vea cómo se mantiene su diseño. Repita el diseño para obtener un mejor rendimiento, latencia y confiabilidad.
- [Opcional] Compare su arquitectura con las descripciones disponibles públicamente de cómo se diseñó realmente el sistema que está replicando. La alta escalabilidad es un recurso particularmente bueno para leer sobre cómo se crean sitios como Twitter y Disqus.