Distributed-Systems

Визуализаторы событийных потоков: зачем они и какие бывают

Визуализаторы событийных потоков: зачем они и какие бывают

Что такое визуализаторы Kafka и событийных потоков, зачем они нужны и почему под одним словом скрываются пять разных классов инструментов с разными целями — от учебных симуляторов до runtime-lineage

Планировщики: семантика расписаний в кластере

Планировщики: семантика расписаний в кластере

«Раз в час» перестаёт быть понятным требованием, как только реплик становится больше одной, а планировщик успевает поспать: что означает пропущенный запуск, догоняет ли расписание пропущенное (одно или всё), что делать с перекрытием и почему полночь — худшее время для задачи. Поведение снято прогонами на живом кластере, а не пересказано по документации

Очереди задач: аренда и жизненный цикл джобы

Очереди задач: аренда и жизненный цикл джобы

Джоба — не сообщение: у неё есть владелец и срок владения. Как устроен цикл claim → lease → heartbeat → complete, что на самом деле удерживает джобу за воркером (не аренда), что происходит при смерти воркера и почему штатный SIGTERM при деплое способен выполнить работу дважды

Идентификаторы в разных языках и БД

Идентификаторы в разных языках и БД

Как одна задача — сгенерировать UUIDv7/ULID/Snowflake — решается в Go, Java и Rust (и почему ops/sec между языками сравнивать нельзя), как типы колонок PostgreSQL (uuid/bytea/text) обходятся с этими значениями и как ::text-каст ломает индекс, и как согласовать идентификатор с ключом шардирования, чтобы монотонный ключ не устроил горячий узел.

Распределённый ClickHouse: шардирование, репликация, Keeper

Распределённый ClickHouse: шардирование, репликация, Keeper

Как ClickHouse масштабируется горизонтально: шардирование и репликация через ClickHouse Keeper, ReplicatedMergeTree и Distributed-таблицы, что ломается при падении узла — реплика недоступна против шард недоступен. Живой кластер 2 шарда × 2 реплики

Надёжность распределённых систем: карта

Надёжность распределённых систем: карта

Навигатор по надёжности распределённых систем: консенсус, согласованность, атомарность и транзакции, гарантии доставки сообщений и устойчивость под нагрузкой — как это связано и в каком порядке разбираться