Junte -se à família Talkhouse? | WebRTC Basey Peer to Peer Voice, Video Chamadas e Mensagens de App Web Build com Mern Stack
Um aplicativo de comércio eletrônico arquiteturado baseado em comunicação assíncrona baseada em eventos, criada usando o Express, TypeScript, Nats-Streaming e Next.js
É um aplicativo da web baseado em comércio eletrônico para comprar e vender ingressos de diferentes eventos ao vivo e divertidos que acontecem em toda a cidade, com base na arquitetura de microsserviços. O aplicativo é dividido em vários serviços individuais que conversam entre si por meio de eventos de publicação por meio de um barramento de eventos. Cada serviço é responsável por lidar e implementar um recurso específico do aplicativo, como o Auth Service, lida com a autenticação, o serviço de pedidos lida com ordens, o serviço de pagamentos implementa pagamentos de usuários e todos esses serviços funcionam e comunicam assíncronos por meio de um barramento de evento (Nats-Streaming) para executar o aplicativo inteiro
O uso da arquitetura de microsserviços e não confiar no padrão de monoloith torna o aplicativo mais durável, tolerante a falhas, altamente disponível e aumenta o tempo para cima do aplicativo. Portanto, se um dos serviços travar, outras partes do aplicativo ainda estarão funcionais e disponíveis para os usuários. Microsserviços e sistemas distribuídos é o coração do software moderno e da engenharia de back -end.
Next.js para renderização e construção do lado do servidorExpress.js é usado para construir back -endMongodb como banco de dadosMongoose como um ORMTypescript , back -end é escrito inteiramente em TypeScript para evitar dores de cabeça que você recebe quando o número de eventos do Infinte está fluindo sem dicasStripe para lidar com pagamentosJest and Supertest para testarDocker para contêinerKubernetes para Orquestração de ConatinerSkaffold que facilita o desenvolvimento contínuo para aplicações nativas de Kubernetes. Torna o trabalho e o gerenciamento de Kubernetes e diferentes serviços de Kubernetes e implantadores muito mais fáceis.NATS Streaming é usado como um barramento de eventos ou fila de mensagens para publicar e lidar com os eventos emitidos por diferentes serviços.Bull.js é um sistema de filas rápido e robusto. É usado para implementar o cronômetro de expiração do pagamento.O aplicativo é dividido em 7 serviços que lidam com e implementam um recurso e funcionalidade específicos do aplicativo:
auth lida com a autenticação e autorização de aplicativos inteiros. A autenticação baseada em JWT e biscoitos é usada.expiration lida com o cronômetro de expiração do pagamento para garantir que o usuário pague dentro de um período de tempo especificado.orders para lidar com pedidos de usuáriopayments para manusear pagamentos de faixastickets para lidar com ingressos (criando, atualizando, buscando). Em vez de vender produtos, este aplicativo de comércio eletrônico vende ingressos de diferentes eventos ao vivo acontecendo em toda a cidade.common toda a funcionalidade comum, como requisito, o manuseio de erros e outros utensílios médios e funções compartilhados por diferentes serviços são agrupados. Este serviço é publicado como um pacote NPM e instalado em outros serviços a serem usados.client lida e implementa o front -end do aplicativo.infra gerencia todos os arquivos de implantação e serviço Kubernetes (.yaml) que executam o aplicativo Cada serviço, banco de dados Mogongodb e servidor de transmissão de nats são dockerizados como um contêiner do docker. Os Conatiners do Docker são gerenciados e orquestrados por seus respectivos arquivos Kubernetes. A comunicação entre diferentes implantações de Kubentes é regida pelo serviço ObjectType. Finalmente, Ingress-Service, que usa Ingress-Nginx (um controlador de entrada para Kubernetes usando o NGINX) como proxy reverso e um balanceador de carga para procurar solicitações de entrada ou direto aos seus respectivos serviços sob o nome de ticketing.dev hostName. O Skaffold é usado para obter todas as implantações e serviços Kubernetes em funcionamento com um único comando skaffold dev que usa o arquivo Skaffold.yaml.
Colocar este projeto em funcionamento em sua máquina local é uma tarefa notoriamente dfficult. Requer algum conhecimento do ecossistema Docker e Kubernetes. Se você ainda está pronto para o desafio ou se não tiver uma vida, tente fazê -lo funcionar. Certifique -se de ter o Docker, Kubernetes e Skaffold instalados. Defina as variáveis ambientais necessárias e execute o seguinte comando:
skaffold dev
E o aplicativo Boom estará em funcionamento, não é necessária uma configuração e dependências extras.
Para excluir quaisquer recursos implantados pela Skaffold e interromper todas as implantações, serviços e contêineres executados
skaffold delete
Tente correr e testá -lo localmente apenas se você não tiver uma vida. Caso contrário, não sou o único culpado por você coçar a cabeça? Enquanto tenta entender essa bagunça de microsserviços da comunicação orientada a eventos entre os serviços?