Interested in distributed systems, network and concurrent programming. I primarily build in Go for high performant backends and network systems, Java so I'm employable and Rust (occasionally) because it's cool.
jkvs A distributed in-memory key-value database, with the storage engine written in Java. Its concurrency architecture consists of lock/wait-free readers, and a single-writer to serialise all write requests via a BlockingQueue data structure. The database also includes log compaction and WAL and aims to add other features later on, specifically batch writing.
The replication layer fsm is written in Go, following the Raft Algorithm. Go was chosen because of it's simpler concurrency primitives, network/IO implementations and a fairly simple scheduler to reason about. The current state of the replication layer has a successfull leader-election implementation. It is currently being integrated with jkvs, for developing the replication layer.
wsl-port is a custom TCP file transfer protocol written in Python stealing most of the RFC 793 Spec. It includes checksums for each packet of data sent, packet retrials, reordering and handshake protocols. The changelog and protocols is extensively documented. Never knew parsing raw bytes were that painful
Cho a log collector that parses logs generated by jkvs and sends them to a log ingestor
Distributed Systems Databases Concurrency Network Protocols Infrastructure
