Skip to content

Código gerado no WideTalk sobre apache kafka, introdução a plataforma de stream.

Notifications You must be signed in to change notification settings

wideti/widetalk-apache-kafka-introducao

Repository files navigation

WideTalk - Introdução a Apache Kafka

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.

Tecnologias ultilizadas

  • Apache Kafka
  • Spring Boot
  • Spring Kafka Integration
  • Spring Web

Como rodar o projeto

  1. Faça download do Apache Kafka e crie os tópicos "new_transaction" e "checked_transaction"
  2. Dentro da pasta de cada projeto execute mvn spring-boot:run

Como usar o projetos

Gerar uma transação:

[POST] http://localhost:8090/transactions

Body:

{
	"id": 1,
	"value": 1987.90,
	"user": "leo"
}

Consultar uma transação

[GET] http://localhost:8091/transactions/{id}

Response:

{
	"id": 1,
	"value": 1987.90,
	"user": "leo",
	"status": "APPROVED"
}

Consultar todas transações

[GET] http://localhost:8091/transactions

Response:

[
    {
        "id": 1,
        "value": 1987.90,
        "user": "leo",
        "status": "APPROVED"
    }
]

Arquitetura

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:

Arquitetura

Transaction producer

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.

Transaction validation service

É 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".

Transaction manager service

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.

About

Código gerado no WideTalk sobre apache kafka, introdução a plataforma de stream.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages