Блог
Заметки о разработке Runnev
Инженерные заметки о потоковой передаче событий по HTTP: решения о транспорте, операционные реалии долгоживущих соединений и гарантии доставки, которые мы на самом деле даём.
-
Как рассчитать кольцевые буферы: математика хранения
Байты на событие, вытеснение и как выбрать
max_bytesиretention_seconds, чтобы обе границы были согласованы между собой, с разбором расчёта. -
Курсоры, номера и гарантия доставки, которую мы действительно даём
Почему мы говорим «не менее одного раза» с идемпотентными записями, а не exactly-once, и как фиксация курсора после побочного эффекта всё равно даёт вам обработку exactly-once.
-
Чему долгоживущие HTTP-ответы научили нас о посредниках
Буферы и таймауты простоя, которые потоковый ответ встречает на пути, и стандартные, дружелюбные к стримингу настройки, что поддерживают долгоживущее SSE-соединение.
-
Режим сырых пакетов: protobuf без реестра схем
Почему мы перестали разбирать полезные нагрузки клиентов, как теперь выглядит путь приёма octet-stream и какую пропускную способность мы вернули, не делая разбор, который нам был не нужен.
-
Почему мы не построили это на WebSocket
Рукопожатие апгрейда, падающее за корпоративными прокси и некоторыми CDN, serverless-среды, не способные держать сокет, мобильные сети, роняющие простаивающие сокеты, и что даёт взамен HTTP/2.