Sobes.tech
Junior — Middle

Quais são os principais padrões de interação do Kafka com microserviços que você conhece?

sobes.tech IA

Resposta da IA

Os principais padrões de interação do Kafka com microserviços:

  1. Arquitetura orientada a eventos (EDA) — microserviços publicam eventos no Kafka, outros microserviços subscrevem-se a esses eventos e reagem a eles. É uma troca assíncrona de mensagens que permite reduzir o acoplamento entre serviços.

  2. Segregação de responsabilidades de comando e consulta (CQRS) — comandos e consultas são processados por microserviços diferentes, e o Kafka é usado para transmitir comandos ou eventos de mudança de estado.

  3. Event Sourcing — todas as alterações de estado do microserviço são armazenadas como uma sequência de eventos no Kafka, permitindo restaurar o estado ou realizar auditorias.

  4. Agregação de logs — Kafka é usado para coletar logs e métricas dos microserviços para análise posterior.

Exemplo de um produtor simples em Go usando a biblioteca sarama:

package main

import (
    "github.com/Shopify/sarama"
    "log"
)

func main() {
    producer, err := sarama.NewSyncProducer([]string{"localhost:9092"}, nil)
    if err != nil {
        log.Fatal(err)
    }
    defer producer.Close()

    msg := &sarama.ProducerMessage{
        Topic: "events",
        Value: sarama.StringEncoder("Hello Kafka"),
    }

    partition, offset, err := producer.SendMessage(msg)
    if err != nil {
        log.Fatal(err)
    }
    log.Printf("Mensagem armazenada na partição %d, offset %d\n", partition, offset)
}