О проекте

Небольшой инструмент, который делает одно дело

Runnev — это потоковая передача событий по обычному HTTP. Мы сделали его, потому что проекты, над которыми мы работали, снова и снова упирались в одну и ту же стену: WebSocket, которые работали на ноутбуке и разваливались за прокси заказчика, и брокеры сообщений, которые были слишком громоздкой машинерией для того, что в итоге было просто упорядоченным журналом, который кому-то нужно было прочитать по сети.

Что это

Поток — это упорядоченный надёжный журнал, адресуемый по base62-идентификатору. Вы публикуете в него пакеты через POST и вычитываете их обратно долгоживущим GET, который потоково отдаёт server-sent events. Это вся видимая поверхность. Всё остальное в продукте существует ради того, чтобы сделать эти две операции надёжными в беспорядочной середине интернета: возобновление по курсору, идемпотентные записи, окна хранения, повтор.

Как это устроено

Сервис — это один бинарник на Go без внешнего брокера. Потоки живут в памяти как ограниченные кольцевые буферы, а метаданные сохраняются в надёжном хранилище. Он работает за CDN, который терминирует TLS и говорит с клиентами по HTTP/2 и HTTP/3. Мы намеренно держим число подвижных частей небольшим: систему, которую можно уместить в голове, можно и поднять в три часа ночи.

Кто мы

Небольшая команда на собственном финансировании, работающая удалённо. У нас нет венчурных денег, и мы не пытаемся быть платформой для всего. Мы скорее сделаем потоки хорошо, чем десять вещей — сносно. Если это оборачивается недостающей вам функцией — напишите нам; дорожную карту в основном пишут те, кто нам пишет.

Куда мы движемся

Ближайшая работа — про гибкость хранения, более удобный повтор и региональную маршрутизацию, чтобы подписчик подключался к близкой к нему точке присутствия. Мы движемся к SOC 2 и скажем об этом прямо, когда получим сертификацию, а не заранее. Следить за этим можно в журнале изменений и в блоге.