В прошлой статье я разбирал архитектурные проблемы, которые возникают, когда клиентом становится AI-агент: адресация через handle/DID/endpoint, маршрутизация direct/relay, доверие на W3C Verifiable Credentials, гибридный поиск. Всё это — фундамент. На нём можно либо написать спецификацию и положить в ящик, либо собрать платформу, которая решает конкретные задачи бизнеса и пользователей.Мы пошли по второму пути. Результат — aigentix.org, слой между диалогом и действием, который уже можно трогать…
За последние десять лет инструменты разработки существенно ускорили мою работу, но не изменили её сути: до недавних пор я тратил большую часть рабочего времени на написание кода и тестов. Но я смог это изменить, когда начал активно осваивать возможности ИИ.Меня зовут Александр Зайцев. Я Go-разработчик в команде Delivery компании «Флант» и работаю над werf и Deckhouse Delivery Kit (DevSecOps). В этой статье я:расскажу, как переводил свою работу на ИИ-рельсы и с какими вызовами столкнулся на этом…
Однажды мне понадобился быстрый способ получить мониторинг SIP-трафика в Prometheus — без установки агентов на серверы, без настройки SPAN на коммутаторе, без привязки к конкретному софту — просто подключиться к сетевому интерфейсу и видеть всё, что происходит. Причём с минимальной задержкой и без влияния на производительность самой телефонии — мониторинг не должен становиться источником проблем.В этой статье — как я решил данную задачу мониторинга SIP-телефонии с помощью eBPF: от захвата пакет…
Бороздя просторы космоса Хабра, рабочих репозиториев и не только, в сегменте Java разработчиков и других JVM динозавров, была обнаружена извественная проблема, большинство фич закрыты фича-флагами в виде простых переменных в коде (иногда чересчур замедруенными). И в этом хаосе родилась идея просто менеджера флагов для разных приложений.В мире кубов и контейнеров JVM приложения чувствуют себя немного странного когда речь заходит о вопросах: кто сожрал все ресурсы в кластере? или как же мне вывер…
Не так давно в отдельной статье я описывал опыт построения примитивной ERP-lite системы, ориентированной на малый бизнес РФ. В общем виде были проговорены основные архитектурные и доменные проблемы, с решением которых возникли трудности в процессе реализации, в том числе изоляции данных организаций-тенантов, миграции схем и проблема ограничения доступов в рамках конкретной компании (и ещё 7 ключевых тем - в моей терминологии именуемые кругами ада).Причина, по которой написана уже эта статья, до…
Я пять лет писал на .NET, и там у меня сложилась привычка держать доменную модель отдельно от инфраструктуры хранения. Repository pattern — не как догма из книги Фаулера, а как рабочий способ не тащить DbContext, маппинги и названия колонок в сущности. Домен остаётся доменом. Когда я перешёл на Go, меня сразу царапнули struct tags. Большинство библиотек работы с БД ожидает примерно такое:type User struct { ID uuid.UUID `db:"id"` Email string `db:"email"` Age …
Часто про Go говорят: «это язык, где конкурентность почти бесплатная».И знаете что? Это правда. Почти.Но «почти» — это самое опасное во всей истории, так как либо ты управляешь системой, либо она управляет тобой руками runtime'а.В трёх статьях я разберу путь, через который проходит почти каждый Go-разработчик от наивного «я добавил go — получил параллельность», до взрослого «я проектирую concurrency-систему с понятными границами».Погнали.Иллюзия первая: «Горутины дешёвые — значит можно скол…
Итак, финал части 1! По крайней мере основного разбора без дополнений. Собственно, сегодня мы разберем то, чем в основном с точки зрения ядра ОС и CPU являются все вот эти ваши бэкенды – системные вызовы и всё, что вокруг них.На самом деле механизм немного замудренный и “в лоб” сразу все эти системные вызовы мы разбирать не будем, потому что вокруг них существует ещё несколько концепций.Итак, начнем!User mode, Kernel modeПроцессор исполняет код в разных уровнях привилегий.Это механизм защиты, к…
Для тех, кому хочется сразу посмотреть код: репозиторий сервиса — в конце текста.Откуда задачаНужен сервис, который централизованно выполняет исходящие HTTP-запросы для экосистемы микросервисов и интеграций. Постановка на уровне требований:Два режима входа — и синхронный (ответ нужен вызывающей стороне), и асинхронный (достаточно принять задачу и отдать результат «куда-то ещё»).Два канала постановки — удобно и через HTTP API, и напрямую в Kafka (без лишнего hop через HTTP).Rate limit — защита к…