Skip to content

socketsguru/mini-kafka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proto - LogBook (mini Kafka)

Sistema de registro de mensajes tipo Kafka usando gRPC + protobuf.

Archivos editables (fuente)

Archivo Que es
logbook.proto Contrato compartido entre los 3 servicios (Go, Python, JS). Define los mensajes y RPCs. Se usa para generar codigo en cada lenguaje.
kafka.go Servidor Go: broker gRPC + endpoint HTTP GET /book
producer.js Cliente Node.js: genera datos random y los envia al broker via gRPC
consumer.py Cliente Python: recibe datos del broker y los procesa (o no, es aleatorio)
package.json Dependencias JS y scripts npm
go.mod / go.sum Dependencias Go
requirements.txt Dependencias Python (instalar dentro de venv)

Archivos autogenerados (NO editar)

Archivo Generado por Para que lenguaje
logbook.pb.go protoc --go_out Go
logbook_grpc.pb.go protoc --go-grpc_out Go
logbook_pb2.py grpc_tools.protoc --python_out Python
logbook_pb2_grpc.py grpc_tools.protoc --grpc_python_out Python

JS no tiene archivos autogenerados: carga logbook.proto directo en runtime con @grpc/proto-loader.

Directorios de entorno (NO commitear)

Directorio Que es
venv/ Entorno virtual Python
node_modules/ Dependencias locales JS

Scripts npm

npm run proto:clean      # borra archivos autogenerados
npm run proto:gen:go     # genera codigo Go desde logbook.proto
npm run proto:gen:py     # genera codigo Python desde logbook.proto

Instalacion desde cero

# 1. Go
go mod init cualquierNombre
go mod tidy

# 2. Python
python3 -m venv venv
venv/bin/pip install -r requirements.txt

# 3. JS
npm install

# 4. Generar codigo protobuf
npm run proto:gen:go
npm run proto:gen:py

Como correr

# Terminal 1 — Levantar el broker (dejarlo corriendo)
go run kafka.go

# Terminal 2 — Producir mensajes (cuantas veces quieras)
node producer.js --author=Brian

# Terminal 3 — Ver el estado del libro
curl localhost:8081/book

# El consumer se ejecuta automaticamente por el broker:
# inmediatamente al llegar un mensaje nuevo, o cada 10s para reintentar los fallidos.

About

tiny home-made kafka with gRPC PoC

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors