39.6K subscribers
1.73K photos
54 videos
5 files
1.86K links
Download Telegram
👣 Implementing Tail at Scale in Go - как строить высоконагруженный tail-сервис

Любопытная статья, в которой показано, как реализовать масштабируемый tail-механизм на Go для чтения и обработки данных в реальном времени. Речь не про «прочитать файл до конца», а про системы, которые постоянно слушают источники и реагируют на новые события.

Самая суть идеи:
tail-сервис - это непрерывный конвейер, который читает данные, обрабатывает их и сразу передает дальше, не блокируясь и не падая под нагрузкой.

Ключевые проблемы, которые нужно решить:
- непрерывное чтение данных без блокировок
- обработка тысяч событий параллельно
- устойчивость к ошибкам и сбоям источников
- масштабирование без сложной синхронизации

Почему Go хорошо подходит:
- легкие goroutine
- каналы вместо shared state
- простая модель конкурентности
- удобный graceful shutdown через context

Базовая архитектура tail-сервиса:
- reader читает данные из источника и кладет в канал
- parser превращает сырые строки в структуру
- filter отбрасывает ненужные события
- dispatcher рассылает данные дальше (метрики, алерты, стримы)

Важный принцип - никакой тяжелой логики в одном месте. Каждый этап независим и общается через каналы.

Ключевые паттерны:
- неблокирующий select вместо бесконечных циклов
- ограниченные по размеру каналы для backpressure
- worker-пулы для обработки нагрузки
- context для остановки всех горутин без утечек

Масштабирование достигается не сложной магией, а:
- разделением ответственности
- параллельной обработкой
- отсутствием глобальных mutex
- четким контролем потока данных

Tail at scale - это не про файлы, а про потоковую архитектуру. Если правильно выстроить пайплайн из goroutine и каналов, Go позволяет строить надежные realtime-системы, которые легко масштабируются и остаются понятными в поддержке.

Это отличный пример того, как идиоматичный Go решает задачи стриминга и realtime-обработки без лишней сложности.

https://jitesh117.github.io/blog/implementing-tail-at-scale-in-golang/

#golang #go

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
1K19👍12🔥8🤬2🥰1
👣 The 2025 State of Go Cryptography

Filippo Valsorda опубликовал ежегодный обзор состояния криптографии в Go за 2025 год. Это отчёт о том, что реально изменилось в одном из самых критичных слоёв экосистемы Go.

Самое интересное:

Криптография в Go - зрелая и стабильная
Стандартная библиотека продолжает оставаться одной из самых надёжных среди языков общего назначения. За год не появилось системных провалов или архитектурных ошибок, а серьёзные уязвимости по-прежнему редкость.

Post-quantum криптография - уже не теория
В Go активно внедряются механизмы post-quantum key exchange. Это подготовка к будущему, где квантовые компьютеры могут ломать текущие схемы. Важно, что это делается аккуратно и без ломки существующих API.

FIPS 140 и корпоративные требования
Большая часть работы была направлена на совместимость с FIPS 140 - стандартом, который критичен для госструктур, банков и крупных компаний. Go всё увереннее чувствует себя в строго регулируемых средах.

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

Философия развития
Go не гонится за экспериментами в криптографии. Приоритеты остаются прежними:
- простые и безопасные API
- минимизация возможности неправильного использования
- предсказуемость и совместимость
- консервативные, но проверенные решения

Главный вывод:
Криптография в Go - это не место для хайпа. Это фундамент, который год за годом становится крепче. Язык всё глубже закрепляется как безопасный выбор для инфраструктуры, сетей, облаков и систем, где ошибка стоит слишком дорого.

Для разработчиков это означает одно: на криптографический стек Go можно продолжать полагаться без оговорок.

https://words.filippo.io/2025-state/

@Golang_google

#golang #go
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍318🥰5
This media is not supported in your browser
VIEW IN TELEGRAM
Какой план на последнюю рабочую пятницу? У нас — AvitoTechno 🎧

Уже все говорят, что это будет главная онлайн-техно-вечеринка для ИТ-комьюнити!

Что там будет:
➡️ сеты от разработчиков диджей-команды AvitoTech;
➡️ выступление BÖRIS REDWÄLL и группы LAVBLAST;
➡️ розыгрыш лимитированного AvitoTechno-бокса (птички напели, что там свитер, шапка, обвес и снежный шар с котиком!).

Как попасть?

Забирайте свой бесплатный билет в боте.

Встретимся на AvitoTechno. Проводим этот рабочий 2025-й технично и крышесносно 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
3🤬1
👣 errors-AsType: идея, которая делает работу с ошибками в Go проще

В Go, чтобы проверить тип ошибки, обычно используют errors.As, но это требует заводить временные переменные и делает код громоздким. В статье предлагается более удобный подход - обёртка AsType, которая сразу возвращает ошибку нужного типа.

Зачем это нужно:

• Код становится короче: никаких var e *MyError заранее.
• Проверка выглядит чище:
if e := errors.AsType[*MyError](err); e != nil { … }
• Удобно, когда нужно последовательно обработать несколько типов ошибок.

Идея не ломает существующий подход, а делает его проще и безопаснее - меньше шаблонного кода, больше читаемости.

Кому полезно: всем, кто пишет стабильный продакшн-код на Go и работает с elaborate-ошибками.

https://antonz.org/accepted/errors-astype/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍228🤔1
Вышел TinyGo 0.40 - компилятор Go для микроконтроллеров и встраиваемых систем.

TinyGo позволяет писать код на подмножестве Go и запускать его напрямую на железе - с минимальным потреблением памяти и ресурсов.

Сборка идёт через LLVM, библиотеки - из стандартного Go, лицензия BSD.

Что важно:
🟢 Более 100 поддерживаемых плат — Arduino, ESP32, STM32, Raspberry Pi Pico и другие
🟢 Драйверы для GPIO, I2C, SPI и работы с датчиками
🟢 Оригинальная модель памяти Go со сборщиком мусора
🟢 Генерация машинного кода и WebAssembly (WASI)

Что нового в 0.40:
🟢 Оптимизации GC — до +10% производительности
🟢 Поддержка LLVM 20
🟢 Новые платы: ESP32-S3, Xiao ESP32-S3, Gopher ARCADE, Pico2-Ice
🟢 Флаг go-compatibility для гибкого контроля совместимости с Go
🟢 Улучшения линковки и анализа defer (алгоритм Тарьяна)

TinyGo продолжает доказывать, что Go подходит не только для серверов, но и для embedded.

📌 Project: https://tinygo.org/
📌 Github: https://github.com/tinygo-org/tinygo

@Golang_google
33👍23🔥19
🎉 Вышел Go 1.26 Release Candidate 1!

Версия, предназначенная для тестирования перед финальным релизом.

Что важно:

- Стабилизация и полировка
Основной фокус RC - исправления, совместимость и подготовка экосистемы к релизу.

- Рантайм и производительность
Добавлены улучшения работы runtime и сборщика мусора, снижение накладных расходов в типичных продакшн-сценариях.

- Инструменты разработки
Улучшения в go toolchain, диагностике, тестировании и профилировании.

- Стандартная библиотека
Небольшие, но важные доработки и фиксы API.

Разработчиков просят:
- прогнать тесты на своих проектах
- попробовать RC в dev / staging
- зарепортить баги до финального релиза


🗣 Анонс: https://groups.google.com/g/golang-announce/c/i0ei8EKtYjc/m/h0jl7InPCwAJ
📦 Скачать: https://go.dev/dl/#go1.26rc1
🐞 Ищите баги и отправляйте репорты: https://go.dev/issue/new


#golang #go

@Golang_google
🔥185👍4👏1