Executando verificação de segurança...
3

4 milhões de cadastros em 4 meses

Irreal! Muito irreal
Se tiver 500 mil é muito kkk Parando a brincadeira kkk

Para te ajudar temos que ter mais dados do que você esta fazendo.

No mais, ja deram dicas de vídeos que podem te ajudar a ter uma ideia geral do que fazer!

O principal problema que você vai ter é banco de dados!
A aplicação aguenta bem. Mas o banco...

Uma ideia:
Nginx depois a aplicação sem estado para poder rodar em N processadores(usa PM2).
Isso já suporta muita coisa! Não é isso que vai dar gargalo inicialmente.
A não ser que o negocio tenha muitas e muitas validações e processamento pesado!
Ai da pra usar processos filhos ou work threads vai ajudar, ou fila para processar depois!

Um crud bem feito não vai dar problemas!

Usando aws vc vai aumentando o server até poder criar microserviços caso precise!
Deu gargalo, fila de espera - se puder fazer!

O gargalo vai estar no banco(quase sempre esta nele). Sugiro filas!
Não prcisa ser nada grande como um Kafka.
Uma fila feita com Postrgress roda bem até uma certa altura!

Seu caso é vídeo neh, então o vídeo vai ser armazenado por vocês?
Ou pode ser no S3(melhor escolha) faz upload sem passar pela sua aplicação :)

Os usuários precisam upar os vídeos? Passa direto pra S3 e mais tarde otimiza com jobs(filas)

É só ver os vídeos que estão com vocês?
Se tiver no seu server os vídeos
Usa HTML streaming - simples de fazer no node
Video Streaming with Node.js / HLS

Eu recomendo o serviço da CloudFlare para vídeo!
CloudFlare vídeo streaming
Para guardar coisas, tbm sugiro o R2 da cloudflare
Ou outro mais barato!

Abraços!

Carregando publicação patrocinada...
1

Vou dar uma olhada no S3 e nesse PM2
Eu tinha esquecido sobre o banco acredita? kkkkkkkkk
Eu vi que existem alguns sistemas de cache que ajudam muito a aliviar a pressao na DB oque me deixou com duvida é se esse tipo de sistema ja é incluso em algum serviço de banco dados ou se eu que tenho q configurar isso em algum servidor por fora de algum jeito

2

O redis faz isso!
O SqLite faz isso! E tem serviços que fazem isso tbm, a CloudFlare tem essas paradas!

Mas se seu cliente disse que é tudo ele tem que pagar bem!
Vai precisar de equipe de devops e esse projeto tende a demorar meses para sair do papel para suportar esses 4 milhões!

PM2 é um gerenciador de processos para o runtime JavaScript Node.js.
quando vc coloca ele pra rodar em N processadores é o mesmo que usar o Cluster do Node!
Um mesmo PC com 5 processadores e cada um rodando o mesmo projeto Node completo.

um S3 ou um R2 ou o serviço de streaming da Cloudflare nem precisa passar pela sua aplicação os vídeos nem pra upload nem pro usuário ver!

1

Ctz que precisa de uma equipe de Devops? tipo no futuro ele provavelmente vai se tornar maior porém por agora não passa de uma pagina de cadastro com uns videos e umas 2/3 telas

1

Ué, não é 4 milhões em 4 meses?
Se não me engano isso da 1.55 requests por segundo!

Mas pense não é apenas 1 request.
O requeste d página o front segura de boa!

Agora usar a aplicação(cadastro, colocar, tirar coisas(caso o user seja permitido)), usar o banco e baixar o vídeo.
Se o vídeo tiver no seu servidor tranformar ele em streaming tem custos altos em
processamento.

Depende de como você vai fazer!

Se for apenas um cadastro de email.
E o vídeo vier de outras fontes(s3, r2 outro sistema de streaming)

Um servidor pequeno deve aguentar de boa!
Como eu disse antes, depende muito de como será a implentação do projeto!

Abraços