Este repositório contém o código gerado no WideTalk. O sistema de estudo que foi proposta é uma aplicação para validar transação financeira utilizando apenas Kafka no seu padrão pub/sub.
- Apache Kafka
- Spring Boot
- Spring Kafka Integration
- Spring Web
- Faça download do Apache Kafka e crie os tópicos "new_transaction" e "checked_transaction"
- Dentro da pasta de cada projeto execute mvn spring-boot:run
[POST] http://localhost:8090/transactions
Body:
{
"id": 1,
"value": 1987.90,
"user": "leo"
}
[GET] http://localhost:8091/transactions/{id}
Response:
{
"id": 1,
"value": 1987.90,
"user": "leo",
"status": "APPROVED"
}
[GET] http://localhost:8091/transactions
Response:
[
{
"id": 1,
"value": 1987.90,
"user": "leo",
"status": "APPROVED"
}
]
Utilizamos o padrão CQRS (Command Query Responsibility Segregation) e criamos uma solução simples para fins de estudo um sistema que aprova transações financeiras de forma assíncrona.
Abaixo imagem para ilustrar nossa solução:
Este serviço é uma API Rest e um Kafka Producer ao mesmo tempo, é responsável por receber uma transação da view e encaminhar para o Kafka processar a transação.
É um serviço que funciona como consumer e producer Kafka ele ouve o tópico "new_transaction" processa a transação e encaminha para o tópico "checked_transaction".
Este serviço guarda as transações baseadas em seu ID, e oferece uma API REST para a View consultar o estado da transação.