Книжный куб
Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре (no ads in channel)
Show more📈 Analytical overview of Telegram channel Книжный куб
Channel Книжный куб (@book_cube) in the Russian language segment is an active participant. Currently, the community unites 14 406 subscribers, ranking 2 568 in the Books category and 45 945 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 14 406 subscribers.
According to the latest data from 27 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by 175 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 19.06%. Within the first 24 hours after publication, content typically collects 9.91% reactions from the total number of subscribers.
- Post reach: On average, each post receives 2 745 views. Within the first day, a publication typically gains 1 427 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 21.
- Thematic interests: Content is focused on key topics such as engineering, native, devex, devops, leadership.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Рекомендации интересных книг, статей и выступлений от Александра Поломодова (@apolomodov), технического директора и эксперта в архитектуре (no ads in channel)”
Thanks to the high frequency of updates (latest data received on 28 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Books category.
Modularity = Strength Xor DistanceЕдинственная проблема, что это уравнение скорее является эвристикой для инженеров, а вот использовать его для автоматического анализа качества архитектуры пока не получилось. #Software #Architect #SystemDesign #SoftwareArchitecture #Processes #Management
Architecture—fundamental concepts or properties of a system in its environment embodied in its elements, relationships, and in the principles of its design and evolution. —ISO/IEC/IEEE 42010И дальше начинается интересное 1) Про топологию развертывания кластера, а точнее про датацентры и стойки (racks). Это важно для понимания того, а как обеспечивается отказоустойчивость - для этого в Cassandra есть сплетни (gossip protocols) и детекция сбоев (phi accrual failure detector). И про то и про другое прикольно рассказано в книге "Database Internals", которую мы обсуждали в "CoA" (выпуски раз и два). 2) Про механизм consistent hashing с токенами, кольцом и виртуальными нодами (насайте DataStax есть отличное описание и визуализация). Про то, как работает partitioner, который раскидывает наши партиции по нодам кластера и про стратегии репликации. Дальше наступает время обсудить consistency level и tunable consistency кассандры, которую мы можем выставлять на каждый запрос. 3) Про координацию запроса координирующей нодой, которая от имени клиента взаимодействует с репликами, чтобы обеспечить запрошенный уровень консистентности. Тут появляется такая штука как hinted handoff для write запросов, когда координирующей ноде не удалось записать данные, но она оставила себе напоминание, что надо надо услышав сплетню о возвращении реплики в строй отправить туда write запрос. Тут же появляются темы как бороться с энтропией (anty-entropy) и чинить реплицированные данные (подход Cassandra основан на подходе Amazon Dynamo, про который можно почитать в whitepaper от 2007 года). Тут и пригождается знание алгоритмов и структур данных, например дерева хешей или дерева Меркла (Merkle trees). 4) Про транзакции, точнее lightweight transactions (LWT) и протокол Paxos для достижения консенсуса. Собственно LWT нужно для достижения линеаризуемости, о которой речь шла в знаменитой CAP теореме (подробнее в прошлых постах: Про CAP теорему и Про формализацию CAP теоремы и ее доказательство). Автор объясняет, что чтение с кворума и запись в кворум, которые гарантируют strong consistency, не позволяют предотвратить состояние гонки (race conditions) в случаях, когда клиентам сначала надо прочитать, а потом записать данные. Именно для этого и появляется LWT, который базируется на Paxos (про который надо рассказывать отдельно). Но надо отметить, что
Cassandra’s lightweight transactions are limited to a single partition.А значит мы не можем гарантировать линеаризуемость, если делаем запрос по разным партициям. 5) Про внутренее устройство движка хранения данных, где у нас есть Memtables, SSTables, and Commit Logs. Это работает так, что запросы на запись мы пишем в commit log и делаем это durable, а дальше записываем данные в in-memory структуру memtable, где каждая memtable содержит данные для специфичной таблицы Cassandra. Дальше при достижении определенного предела memtable записывается на диск (это уже называется sstable - sorted strings table или отсортированная таблица строк). Таких SSTable на диске много и Cassandra периодически их компактит, производя mergesort (опять тут пригодятся алгоритма для понимания). Дальше интересно обсудить чтение данных, где нам помогают вероятностные структуры данных, а точнее фильтры Блума (Bloom filters). Они позволяют понять, а есть ли искомая запись внутри конкретной SSTable без full scan. Кроме того используются стратегии кеширования для производительности. Плюс удаление записей с append-only структурой хранения выглядит интересно - мы не можем просто удалить запись, так как надо сохранить tombstone о том, что она удалена. Если мы это не сделаем, то при compaction наши удаленные записи оживут ... и не в виде зомби, а полноценными записями:) To be continued ... #Software #Architecture #DistributedSystems #SystemDesign
Think of the most common query paths your application will use, and then create the tables that you need to support them.Целью является создание такой модели данных в Cassandra, который минимизирует количество партиций, которые нам надо потрогать, чтобы ответить на запрос. Суть в том, что партиция является единицей хранения и если мы попадаем в одну партицию, то обычно получаем оптимальную производительность. Отдельно стоит отметить, что сортировка данных в Cassandra тоже является дизайн решением, так как данные на ноде внутри партиции раскладываются в том порядке, что определен набором clustering columns. Кстати, для моделирования данных в Cassandra используются Chebotko diagrams, на которых моделирование как раз идет от query, которые поддерживаются табличками, а дальше для таблицы указываю входящие колонки и все виды ключей. Обзор оставшейся части книги будет в следующем посте. #Software #Architecture #DistributedSystems #SystemDesign
Пьяный мужик что-то ищет под фонарем. К нему подходит милиционер: — Вы что вы тут делаете? — Ключи от квартиры ищу — А где потерял? — Да вон там, в парке. — А зачем здесь ищешь? — А здесь светлее.И желает читателям найти свои способы расширить маленькое пятно света и осветить окрестности своих данных:) P.S. В следующем посте я расскажу подробнее про виды темных данных #Management #Data #Math #Statistics
Available now! Telegram Research 2025 — the year's key insights 
