A toy distributed pubsub written with Go and gRPC. Inspired by Kafka.
- Tons of cleanup
- Error checking
- Close yo files/graceful exits and disconnects
- Docs
- Tests
- Metrics
- Distributed brokers
- Partitions
- Replication
- Synchronous producers
- Consumer API
- Multiple segment files
- Timeouts
- Message delivery semantics
- Availability and durability guarentees
- Data retention
- Mmap in the consumer implementation
- Latency auditing
- Offsets
- Load previously written data instead of destroying it on startup
- Placeholder binary format
- Placeholder rpc interface
- Server binary
- Publisher test binary
- Subscriber test "tail -f " binary
- Works end-to-end (for some definition of works)