распределённая платформа для потоковой передачи сообщений Kafka использует модель доставки "at least once" обеспечивает запись в логи партиций с последующей репликацией при сбоях или повторной обработке возможны…
позднее статическое связывание представляет собой отложенное до компиляции разрешение вызова функции с учётом конкретного статического типа. Его применяют в шаблонах и для оптимизации полиморфизма времени компиляции.
Зачем закрывать тело HTTP-ответа в Go? Тело HTTP-ответа представляет собой поток данных (io.ReadCloser) Вызов Close освобождает сетевые ресурсы и дескрипторы Если не закрыть тело, возможны утечки памяти и зависшие…
Repository в Laravel: зачем и когда он нужен? паттерн архитектуры для организации доступа к данным скрывает детали работы с ORM (Eloquent) и иными источниками данных делает тестирование удобнее благодаря мокированию…
Зачем нужна consumer group в Kafka? Kafka представляет собой распределённую систему обмена сообщениями. Consumer group — объединение потребителей, совместно считывающих данные из топика. Внутри группы каждый partition…
DDD и гексагональная архитектура DDD (Domain-Driven Design) — метод разработки, в основе которого лежит глубокое понимание предметной области Важный принцип DDD — выделить ядро домена, содержащее бизнес-логику, и…
Различия Kafka и RabbitMQ в гарантированной доставке сообщений Kafka представляет собой распределённый commit log, в котором сообщения хранятся постоянно Данные попадают в топики, разделённые на partitions, благодаря…
Каким образом Kafka обеспечивает отказоустойчивость за счёт репликации и кластеризации? распределённый кластер брокеров, обеспечивающий масштабирование и отказоустойчивость данные распределяются по партициям, для…
Как в Go выполнять HTTP-запросы асинхронно? тема: конкурентность, net/http, goroutines параллельный запуск запросов выполняется через goroutines каждый HTTP-запрос помещается в отдельную goroutine (go func()) для…
Как в Go обрабатываются ошибки и паники? ошибка представляется как значение через интерфейс error после вызова функции выполняется явная проверка (if err != nil) паника возникает при критических ошибках, например при…
Как в Go реализовать graceful shutdown с defer, контекстом и обработкой ошибок в группах горутин? управлять завершением приложения через context.Context (cancel/cancellation) применять defer для освобождения ресурсов,…