Skip to content

mvaleed/brook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brook

Brook is a lightweight message broker with Kafka-like semantics (append-only logs, consumer groups, offset tracking) built primarily for learning and understanding distributed systems.

This project maintains production-ready principles while serving as a lightweight alternative for scenarios where consistency matters more than extreme performance — think microservices choreography, event sourcing in smaller systems, or teams wanting Kafka's mental model without the operational complexity.

Project Structure

I have kept it super simple for now. No abstractions until needed. There are three major components of a message broker:

  1. storage - Append-only log implementation. Think dealing with the disk.
  2. network - TCP server handling the wire protocol, request routing and connection lifecycle.
  3. brain - Coordination layer managing topics, partitions, consumer groups, offset tracking, and rebalancing.
├── cmd/
├── internal/
├────brain/
├────network/
├────storage/
├── go.mod
├── go.sum 
└── README.md

About

A lightweight message queue and streaming system written in Go, built to understand the internals of distributed systems like Kafka and NATS through hands-on implementation of log-based storage, zero-copy transfers, and producer-consumer patterns.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages