Repaso
English
Diseño de sistemasAvanzadoSD-27

Diseña un servicio de almacenamiento y sincronización de archivos (como Dropbox).

Respuesta

  • Divide los archivos en chunks (por ejemplo 4 MB) y calcula un hash de cada uno; sube solo los que cambian (deduplicación, subidas reanudables).
  • Chunks en object storage (S3); una base de metadatos guarda archivos, versiones, listas de chunks y permisos.
  • Sube directamente al almacenamiento con URLs pre-firmadas.
  • Sincronización: los clientes mantienen un cursor; un servicio de notificaciones (long polling / WebSocket) anuncia los cambios; los clientes descargan los metadatos nuevos.
  • Conflictos: conserva ambas copias, o historial de versiones.
  • Compartir con ACLs y enlaces; CDN para las descargas; cifrado en reposo.

Términos clave

Practica esta pregunta en Repaso