Agora que a gente entendeu a ideia básica do System Design aqui, a gente vai para um outro ponto, que é simplesmente o aprofundamento. O que é um aprofundamento? São questões que a gente tem que levar em consideração e que realmente a gente consegue ver o quão profundo é o seu conhecimento em determinado tipo de assunto, tá? Ou seja, se você estiver numa entrevista provavelmente vão querer fazer algumas perguntas que acabam sendo mais cabeludas ali pra você. E quanto mais você fala sobre aquilo, mais eles vão querer aprofundar. E normalmente, né, é pego um ou dois pontos ali de aprofundamento, mas de forma geral, você fazendo isso pra sua empresa, é importante todo mundo sentar, fazer perguntas de aprofundamento, dar uma de advogado do diabo pra que as principais, os principais conflitos e pontos que acabaram não sendo levantados nessa visão mais high level, consigam ser pensados a partir de agora. Eu vou dar um exemplo aqui de pergunta. Por exemplo, qual tipo de banco de dados usar ali nesse caso? Pode ser um banco de dados relacional que apenas consegue armazenar a solicitação da do RAID, ou eu posso chegar aqui, ó, e colocar aqui, ó register RAID ok? E depois disso eu gravo isso num banco de dados dependendo da situação, eu posso ter um outro serviço aqui chamado do RAID matching e aqui no RAID matching, o que que eu posso ter um outro serviço aqui chamado do Ride Matching. E aqui no Ride Matching, o que vai acontecer? Eu posso pegar os dados daqui, né? Para fazer o matching desses dados, mas aqui provavelmente eu vou precisar de um outro tipo de banco de dados, porque para eu fazer matching com um banco de geolocalização é diferente de eu fazer um matching com um banco de dados relacional diretamente, tá? Então qual tipo de bancos utilizar? Como garantir resiliência em relação a o register ride, né? O que que acontece se o register ride o que que acontece se o register ride estiver fora do ar o que que acontece por quanto tempo eu devo cancelar a ride legal? outra coisa aqui que eu posso começar a perguntar cancelar a ride. Legal? Outra coisa aqui que eu posso começar a perguntar. Como funciona a API Gateway? Quais serviços ela vai utilizar? Me fale, fale três tipos, aponte três a utilizar me fale fale três tipos, aponte três tipos três marcas três três marcas de API Gateway tá? eu posso fazer milhares de perguntas e essas questões de aprofundamento elas vão mostrar no final das contas o quanto você entende daquilo, né? E normalmente essas perguntas e a forma como você responde acabam de uma forma geral definindo aí a sua senioridade. Muitas vezes. Às vezes você fala ah, eu vou usar um banco relacional pra calcular aí a sua senioridade, muitas vezes. Às vezes você fala, ah, eu vou usar um banco relacional para calcular geolocalização, e daí, tipo, a pessoa pode pensar, poxa vida, eu trabalho no Uber, a gente sabe que tem bancos de dados super eficientes para geolocalização, e ele está fazendo eu fazer isso com o MySQL, por exemplo. Então, a gente já sabe que talvez a pessoa não tenha tido experiência com outros tipos de banco de dados. Então, essas questões de aprofundamento, elas vão, na realidade, expor o seu nível de experiência, pelo menos naquele tipo de contexto. Então, essas sessões de aprofundamento é onde que você tem que tomar mais cuidado pra não falar um monte de buzzword, um monte de palavra aí chique, que na hora que a pessoa perguntar e pedir pra se aprofundar nisso, você não vai saber, e daí ele vai perceber apenas que você tava querendo chamar atenção e dizer que você tá por dentro dos hypes, das tecnologias, tá? Então, essa é a ideia geral aí, pessoal, da estrutura de como a gente imagina que você deva fazer ali um system design, tá? É fácil fazer isso? Não. Mas você vai pegando prática. Legal? Então, a partir de agora, no próximo vídeo, eu vou trazer agora aqui para vocês alguns requisitos funcionais, tá? Principalmente funcionais sobre o nosso estudo de caso do Uber, tá? E a partir disso eu quero aqui pra você como lição de casa, que você consiga passar por essas etapas, tá? Quanto mais você conseguir chegar até o final dessas etapas, mais preparadoanto mais você conseguir chegar até o final dessas etapas, mais preparado você vai estar pro evento, mais você vai aprender no evento e mais você vai poder comparar a sua solução com a solução de outras pessoas, beleza? Então, vamos nessa!