bom galera, agora que a gente já aprendeu fazer o design dos API você vai ter que aprender a parte que acaba sendo não digo que é mais complexa uma vez que você entendeu isso aqui você vai ter que ir pra parte de whiteboard ou fazer realmente o system design que são os desenhos mesmo aqui e esses desenhos, eles tem que ser extremamente expressivos, o fluxo dele tem que estar muito claro, pra que todo mundo que vá fazer, pra que todo mundo que vá olhar consiga entender, tá? Então, eu vou dar um exemplo aqui pra gente, ó. Eu tenho um usuário, né, e nesse usuário eu posso colocar aqui, por exemplo, que é o rider, né, o cara, o passageiro que tá solicitando uma request, aí eu tenho aqui, por exemplo, uma entrada, aqui, tenho uma entrada aqui que é uma API Gateway, então eu vou colocar aqui uma API Gateway, onde o cara recebe todas as requisições, essa API Gateway é responsável por fazer um todas as requisições, essa API Gateway, ela é responsável por fazer um monte de coisa, desde autenticação, você pode até colocar aqui as principais funções da API Gateway aqui, pra deixar clara as principais responsabilidades desse cara aqui, tá? Mas o fato é que o Rider, provavelmente, ele vai bater aqui nessa API Gateway, né? Então ele vai bater aqui nessa API Gateway, então ele vai bater aqui nessa nossa API Gateway, e uma vez que ele bate na nossa API Gateway, a gente pode colocar aqui, request ride. Entendeu? Então fica muito fácil agora entender o que está acontecendo aqui. Na hora que eu tenho request ride, eu posso ter, por exemplo, um serviço aqui, tá? De, por exemplo, um um ride matcher, por exemplo, tá? Estou dando um exemplo aqui, tá, pessoal? Não estou dizendo que vai ser assim. Por quê? Quando eu vou solicitar uma nova ride, o que que vai acontecer? Eu vou solicitar esse cara aqui, esse cara provavelmente vai encaminhar esse cara, pra quê? Pra que a gente tentar fazer um match, né? De quem? Do rider com o motorista. Então esse cara aqui vai tá buscando. Mas aqui, ó, já matei aqui a solicitação motorista. Então, esse cara aqui vai estar buscando. Mas aqui, já matei a solicitação da ride. Então, se você olhar aqui, esse requisito, ele já está muito claro do que ele vai fazer. Eu já matei aquele primeiro parte, que é o rider solicitou uma nova corrida. E aqui, provavelmente, vai cair um sistema onde faz o ride matcher, né? Ou seja, posso até colocar aqui ride matcher com... Ride... Ride matcher, pode ser. Porque ele vai juntar aqui pra mim o rider e o driver aqui para mim. Então, ele vai tentar encontrar o driver mais próximo desse cara aqui. Agora, como esse cara aqui vai fazer, aí provavelmente já vão ter outras situações aqui nesse caso. Provavelmente, aqui a gente vai precisar de algum tipo de banco de dados, será que é um banco de dados relacional? Acredito que não, acredito que sim, depende. Você vai ter que pensar nisso aqui, então esse cara aqui, ele tem provavelmente um banco de dados, que ele vai guardar essas informações aqui da solicitação, aqui da solicitação, né? E provavelmente, em algum momento, ele vai ficar fazendo essa solicitação, gravando no banco e tentando fazer todo esse match aqui, né? Ah, Wesley, mas isso acontece de forma assíncrona? Como é que isso vai cair numa fila? Calma, vamos resolver esses requisitos de forma mais devagar e daí a gente vai melhorando isso numa próxima etapa, que normalmente é uma etapa de aprofundamento ou deep dive, tá? Mas a ideia aqui do System Design é, para cada requisito, você vai complementando e conforme você vai complementando, você vai integrando uma parte com a outra aqui. Então, essa aqui é a ideia principal. Fechou? Então, essa parte aqui é a parte propriamente dita que a gente faz o System Design. Ou High Level View, ou high level view, barra whiteboard. Beleza? Então, tem vários nomes que as pessoas acabam chamando, mas é a partir daqui que começa. Mas, novamente, sempre quando você for fazer isso, você tem que estar ligado nos requisitos do que vai acontecer. E vão chegar momentos que você vai ter que olhar também nos requisitos não funcionais para conseguir incrementar isso e fazer com que a gente atenda esses requisitos não funcionais aqui também. Beleza? Então, é isso aí. Próximo vídeo a gente vai falar sobre aprofundamento em questões mais complexas que acabam acontecendo nesse tipo de System Design. Vamos nessa.