diff --git a/docs/clustering.md b/docs/clustering.md
index abaf2a3001e97559dd5c99ba6ed081ae19158276..326f005782799fd8865ce8b18d633f3c8cefd585 100644
--- a/docs/clustering.md
+++ b/docs/clustering.md
@@ -133,6 +133,29 @@ struct Peer {
 
 Количество голосующих узлов в кластере не настраивается и зависит только от общего количества инстансов. Если инстансов 1 или 2, то голосующий узел один. [TODO](## "Сейчас в кластере из 2 инстансов оба делаются голосующими. Надо проработать аргументацию и решить как правильно."). Если инстансов 3 или 4, то таких узлов три. Для кластера с 5 или более инстансами — пять голосующих узлов.
 
+
+# Пару слов об обработке записей Raft-журнала
+
+Стейт-машину каждой отдельной записи в Raft-журнале можно описать так:
+
+```md
+`Persisted` → `Committed` → `Applied`
+```
+
+При добавлении в журнал (по правилам это делает лидер) запись получает статус `Persisted` и начинает реплицироваться (это асинхронно делает файбер `raft_main_loop` ). Когда кворум узлов подтвеждает персистентность записи, она считается закоммиченной. Важно понимать, что статус `Committed` присвается записи на основе совокупной полученной информации, а не какого-то конкретного действия.
+
+Конкретные действия по оработке той или иной записи выполняет отдельный поток `raft_applier` ([TODO](## "Пока что отдельного потока нет, но лучше бы был")). Для каждой записи он выполняет обработчик `Op::on_commit()` и по завершении присваевает записи статус `Applied`. Важно помнить, что обновление статуса и сама операция могут выполняться не атоманро (если в `Op::on_commit()` происходит передача управления другому потоку - yield). В таком случае, следует позаботиться хотя бы об идемпотентности операции.
+
+Схема ниже поможет эту информацию переварить.
+
+![Raft log](raft_log_curves.svg "Последовательность обработки записей в Raft-журнале")
+
+Стоит также помнить, что алгоритм Raft гарантирует лишь консистентность последовательности записей, но ничего не говорит о конкретных моментах времени. Смена статусов на разных инстансах так или иначе происходит в разные моменты времнени, и иногда эту очередность приходится учитывать в алгоритмах.
+
+# Кто и когда выполняет box.cfg и vshard.cfg?
+
+Отличный вопрос. Ответ на него нам предстоит найти.
+
 # Graceful shutdown
 
 Чтобы выключение прошло штатно и не имело негативных последствий необходимо следующее:
diff --git a/docs/raft_log.svg b/docs/raft_log.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3ab4e0637dca95c1b94f995ddf2e26c9c2362d77
Binary files /dev/null and b/docs/raft_log.svg differ
diff --git a/docs/raft_log_curves.svg b/docs/raft_log_curves.svg
new file mode 100644
index 0000000000000000000000000000000000000000..747d3ebf8b2f7f52e1a4360b82b7c84d57a7c1b9
Binary files /dev/null and b/docs/raft_log_curves.svg differ