Este é um projeto que envolve várias tecnologias e componentes diferentes para criar uma aplicação de integração que utiliza Kafka, gRPC e Kubernetes. A estrutura do projeto inclui os seguintes componentes:
nestjs
: Projeto em NestJS que se comunica com o aplicativo em Go (central-bank
) via gRPC e troca mensagens com o Kafka.nextjs
: Frontend da aplicação.k8s
: Scripts do Kubernetes para implantar os diferentes componentes do projeto em ambientes separados.kafka
: Docker Compose com todas as dependências do Kafka para suportar a integração.central-bank
: Aplicativo em Go, inicializado com Cobra, que fornece serviços acessíveis via gRPC.
Antes de começar, você deve garantir que os seguintes requisitos estejam atendidos:
- Docker instalado e em execução.
- Docker Compose instalado.
- Kubernetes configurado, se você deseja implantar nos ambientes Kubernetes.
- Node.js e NPM instalados, se você deseja trabalhar no projeto
nextjs
. - Go instalado, se você deseja trabalhar no projeto
central-bank
.
Antes de executar o projeto, siga estas etapas:
- Navegue até a pasta
kafka
:
cd kafka
- Inicialize o ambiente Kafka com todas as dependências (ZooKeeper, Kafka, etc.):
docker-compose up --build
O projeto NestJS se comunica com o central-bank via gRPC e troca mensagens com o Kafka. Certifique-se de que a configuração apropriada esteja em vigor, incluindo os arquivos de configuração do Kafka e gRPC.
O projeto central-bank é um aplicativo Go que pode ser inicializado com o seguinte comando:
go run main.go all
Certifique-se de que todas as dependências Go estejam instaladas antes de executar o projeto.
Dentro do arquivo go.mod
apague todo o conteúdo de require
e no terminal rode o comando abaixo para instalar todas as depêndencias:
go mod init
Com isso a aplicação deve funcionar corretamente.
Navegue até a pasta nextjs:
cd nextjs
Instale as dependências:
npm install
Inicie o aplicativo Next.js:
npm run dev
Se desejar implantar os componentes em Kubernetes, navegue até a pasta k8s e use os scripts fornecidos para implantar os serviços e recursos necessários.
Observação: Certifique-se de ter o Kubernetes configurado e os objetos necessários criados no cluster.