# Aleksei Khromenkov — dethlex > Personal site and digital garden of Aleksei Khromenkov — backend engineer working on high-load systems: Go, ClickHouse, Kafka, observability. ## Garden notes (raw markdown) - [Kafka partition assignment: Range, RoundRobin, and why joins care](https://dethlex.com/garden/kafka-partition-assignment/raw): RangeAssignor looks naive until you join two topics — then its alignment is the whole point. Choosing an assignment strategy is choosing what your consumers are allowed to assume. (growing, 2026-06-28) - [Trident 660, first thousand kilometers](https://dethlex.com/garden/triumph-trident-660/raw): Notes after a month with Triumph's little triple on Cyprus roads — what the spec sheet doesn't tell you about heat, hairpins and the sound at 7000 rpm. (seedling, 2026-06-20) - [Why ClickHouse wants your inserts in batches](https://dethlex.com/garden/clickhouse-batch-inserts/raw): Every INSERT into MergeTree creates a part on disk. Feed it row-by-row and you trade write throughput for a merge storm — batch, or let async inserts batch for you. (evergreen, 2026-06-10) - [Lock-free config reloads in Go with atomic.Pointer](https://dethlex.com/garden/go-atomic-swap-reload/raw): When 100k RPS worth of goroutines read a lookup table that reloads every minute, RWMutex is the wrong tool. Build the new snapshot aside and swap one pointer. (growing, 2026-05-15) ## Pages - [About](https://dethlex.com/#about) - [Now](https://dethlex.com/now/) - [Colophon](https://dethlex.com/colophon/) Full note contents in one file: https://dethlex.com/llms-full.txt