3 Comentarios
Avatar de User
Avatar de Israel

Muy interesante tu post, pero hay un tema sobre las concurrencias y proceso asincronos, como abordarias eso?

Avatar de Daniel Blanco

Hola Israel! Muchas gracias por tu comentario.

Depende mucho del tema en cuestión. En general no se trata demasiado a bajo nivel en una entrevista de diseño de sistemas. Normalmente, cuando hay un proceso que puede llevar bastante tiempo, se debe separar entre lo que el usuario necesita de forma síncrona y lo que puede esperar.

Por ejemplo, si un proceso lleva horas, la respuesta al usuario debe ser inmediata, dejándole saber que el proceso asíncrono se ha lanzado y está en cola / ejecución. Por detras, podríamos tener un sistema de colas y workers, por ejemplo, de forma independiente. Los workers van procesando al ritmo que pueden las tareas.

Una vez finalizadas, se podría enviar una notificación al usuario si es necesario que los usuarios se enteren al momento de finalizar, o podríamos ofrecer un enlace al usuario desde donde pueda ver el estado y el progreso cuando lo necesite.

Avatar de Angel Astorga

Que tipo de metodología es adecuada para aprender diseño de sistemas?

Yo he tenido en mente que es algo como investigar cierto patrón (como podría ser event sourcing) y aplicarlo en un proyecto para entenderlo a fondo, pero siento que por muchos patrones que entienda aún no sería capaz de diseñar un YouTube con requisitos ambiguos