подборка статей по HighLoad архитектуре OTUS
2026-03-10 01:03 Diff

1. RabbitMQ Streams для сбора и обработки телеметрии умного дома

Посмотрим на основные отличия очередей RabbitMQ от классического режима очереди сообщений, а также возможные сценарии использования с примерами кода на Go.

2. Архитектура для разработчиков и админов: кому какие навыки нужны?

Классифицировали знания архитектуры в зависимости от уровня и деятельности специалистов. Памятка для тех, кто хочет прокачать свои навыки проектирования приложений или ПО, но не достаточно хорошо ориентируется в какой последовательности их осваивать.

3. Почему может понадобиться полусинхронная репликация?

Из-за того, что на HDD может выполняться лишь порядка 400-700 операций в секунду, классическая дисковая база данных является узким горлышком архитектуры. Поэтому необходимо уделить отдельное внимание паттернам масштабирования данного хранилища.

На текущий момент имеются два паттерна масштабирования базы: репликация и шардирование. Шардирование позволяет масштабировать операцию записи, и, как следствие, снижать rps на запись, приходящийся на один сервер вашего кластера. Репликация позволяет делать тоже самое, но с операциями чтения. Именно этому паттерну и посвящена данная статья.

4. Шаблоны GRASP: Creator (создатель)

Шаблоны GRASP являются скорее не паттернами проектирования (как GoF’овские), а фундаментальными принципами распределения ответственности между классами. Они, как показывает практика, не обладают особой популярностью, однако анализ спроектированных классов с использованием полного набора GRASP’овских паттернов является необходимым условием написания хорошего кода. Паттерн Creator решает такую же типовую задачу как и его предшественник: создавать экземпляры класса должен класс, которому они нужны.

5. Шаблоны GRASP: Controller (контроллер)

Обязанности по обработке входящих системных сообщений необходимо делегировать специальному объекту Controller’у. Controller — это объект, который отвечает за обработку системных событий, и при этом не относится к интерфейсу пользователя. Controller определяет методы для выполнения системных операций.

Еще больше технических материалов вы найдете в нашем блоге на хабре.