There's a toy Kafka implementation written in Go that attempts to do this: https://github.com/travisjeffery/jocko
Previous HN discussion: https://news.ycombinator.com/item?id=13449728
Previous HN discussion: https://news.ycombinator.com/item?id=13449728