Não se ligue tanto a linguagens ou frameworks, mas em formas de resolver problemas, por exemplo:
- Como empresas com alta demandam lidam com volume colossal de requisições?
- Como escalar um projeto desse tamanho?
- Como evitar custo infinito?
Essas perguntas, por óbvio, levam a outras perguntas e exigem exemplos mais concretos:
- Considere que uma aplicação tem um 5000 rpm, mas dessas 4500 são de leitura e 500 de escrita.
- Considere uma aplicação com 5000 rpm, sendo 4500 de escrita e 500 de leitura.
- Considere uma aplicação que lida com 1000 rpm de upload de vídeo e imagem de alta definição em 8k raw.
Essas considerações levam a tecnologias que tratem sobre:
- Caching: redis
- Messaging/streaming: kafka,rabbitmq
- Talvez separar o processo de escrita do processo de leitura do banco, talvez usando bancos SQL e NoSQL para cada tarefa.
- Utilização de serviços de Cloud direcionados para determinadas demandas como BigQuery ou GKE.
- Desenvolvimento orientado a evento.
A lista de problemas, soluções e considerações é infinita, mas com essa amostra espero ter demonstrado brevemente o que quero dizer.