System Design da Netflix

Neste laboratório, você será desafiado a projetar o sistema por trás de um dos maiores serviços de streaming do mundo, a Netflix. O objetivo é aplicar conceitos de system design para entender, projetar e justificar as decisões técnicas relacionadas à arquitetura do sistema.

1. Entendimento do Sistema

Responda às seguintes perguntas para entender o contexto do sistema:

  1. O sistema tem alta leitura ou alta gravação? Explique sua resposta.
  2. No contexto do sistema, o que é mais importante: consistência ou disponibilidade? Justifique.

2. Requisitos Funcionais

Defina as principais features do sistema e até 2 features de suporte:

3. Requisitos Não Funcionais

Analise os seguintes requisitos para o sistema:

4. Informações para o Plano de Capacidade

Utilize os dados abaixo para embasar seu planejamento de capacidade:

5. Modelagem de Dados

Identifique as principais entidades relacionadas ao sistema e faça o desenho da modelagem de dados com base nas features que você definiu.

6. Design da API

Defina as principais APIs que o sistema deveria disponibilizar, considerando as features.

7. Faça o System Design da Solução

Desenhe a arquitetura do sistema, justificando suas escolhas de design.

8. Coloque-se no Papel do Entrevistador

Com base no system design que você desenvolveu, elabore 3 perguntas complexas que poderiam ser feitas para aprofundar a solução proposta.

9. Ferramentas de Desenho

Todos os itens devem ser realizados utilizando uma ferramenta de desenho, como Excalidraw.

Link para lib do excalidraw, clique aqui.