Блог инженера

History is written by its contributors

Consistent Hashing: математика за load balancing

2025-08-16 время чтения 5 мин Algorithms Distributed-Systems Math Ilya Brin

Привет, бро! 👋

Представь: у тебя 1000 серверов и миллионы запросов. Как равномерно распределить нагрузку так, чтобы при добавлении нового сервера не пришлось перехешировать всё?

Обычный hash(key) % servers превращается в катастрофу при масштабировании. Добавил один сервер - и 90% данных нужно перемещать!

Но есть элегантное решение: Consistent Hashing. Математика, которая спасает от хаоса в distributed systems.

Разбираем алгоритм, который использует Amazon DynamoDB, Cassandra и Redis Cluster 🚀

Читать далее

Proxy Pattern в Go: Контроль доступа и управление ресурсами

2025-08-12 время чтения 9 мин Разработка Ilya Brin

Proxy pattern предоставляет суррогат или заместитель другого объекта для контроля доступа к нему. Он действует как посредник, добавляя функциональность без изменения оригинального объекта.

Вот когда и как использовать его в реальных Go-приложениях.

Читать далее

TLS 1.3: что изменилось и как мигрировать

2025-08-08 время чтения 7 мин Security Tls Cryptography Ilya Brin

Привет, защитник! 👋

TLS 1.3 - это не просто очередная версия протокола. Это революция в безопасности интернета: быстрее, безопаснее, проще.

Но миграция с TLS 1.2 - это не просто обновление конфига. Нужно понимать, что изменилось, что сломается и как правильно мигрировать.

Разбираем ключевые изменения TLS 1.3, практические примеры и пошаговый план миграции 🚀

Читать далее

Builder Pattern в Go: Пошаговое создание сложных объектов

2025-08-07 время чтения 10 мин Разработка Ilya Brin

Builder pattern отделяет конструирование объекта от его представления. Он позволяет создавать разные представления объекта, используя один и тот же процесс конструирования.

Вот как правильно реализовать его в Go с реальными примерами.

Читать далее

Observer Pattern в Go: Реализация подписки на события

2025-08-04 время чтения 7 мин Разработка Ilya Brin

Observer pattern - один из самых полезных поведенческих паттернов. Он устанавливает зависимость один-ко-многим между объектами: когда один объект меняет состояние, все зависимые уведомляются автоматически.

Вот как правильно реализовать его в Go с реальными примерами.

Читать далее

Redis как Message Broker: когда он лучше RabbitMQ

2025-07-23 время чтения 6 мин Redis Ilya Brin

Redis часто воспринимают только как кеш. Но Redis - это полноценный message broker, который в некоторых сценариях работает лучше RabbitMQ, Kafka и других специализированных решений.

Разберём, когда Redis - правильный выбор, а когда лучше взять что-то другое.

Читать далее

PostgreSQL и генерация случайных данных

2025-07-12 время чтения 5 мин Postgresql Database Data-Generation Ilya Brin

Привет, разработчик! 🎲

Тебе нужно сгенерировать промокоды для акции? Создать миллион тестовых пользователей? Или просто замаскировать продакшн-данные для разработки? PostgreSQL умеет гораздо больше, чем просто SELECT random().

Разберём, как превратить PostgreSQL в генератор случайных данных для реальных задач.

Читать далее
Старые записи Новые записи