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

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


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

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


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

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

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


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

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


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

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

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