О проекте
Небольшой инструмент, который делает одно дело
Runnev — это потоковая передача событий по обычному HTTP. Мы сделали его, потому что проекты, над которыми мы работали, снова и снова упирались в одну и ту же стену: WebSocket, которые работали на ноутбуке и разваливались за прокси заказчика, и брокеры сообщений, которые были слишком громоздкой машинерией для того, что в итоге было просто упорядоченным журналом, который кому-то нужно было прочитать по сети.
Что это
Поток — это упорядоченный надёжный журнал, адресуемый по base62-идентификатору. Вы публикуете в него
пакеты через POST и вычитываете их обратно долгоживущим GET, который
потоково отдаёт server-sent events. Это вся видимая поверхность. Всё остальное в продукте существует
ради того, чтобы сделать эти две операции надёжными в беспорядочной середине интернета: возобновление по
курсору, идемпотентные записи, окна хранения, повтор.
Как это устроено
Сервис — это один бинарник на Go без внешнего брокера. Потоки живут в памяти как ограниченные кольцевые буферы, а метаданные сохраняются в надёжном хранилище. Он работает за CDN, который терминирует TLS и говорит с клиентами по HTTP/2 и HTTP/3. Мы намеренно держим число подвижных частей небольшим: систему, которую можно уместить в голове, можно и поднять в три часа ночи.
Кто мы
Небольшая команда на собственном финансировании, работающая удалённо. У нас нет венчурных денег, и мы не пытаемся быть платформой для всего. Мы скорее сделаем потоки хорошо, чем десять вещей — сносно. Если это оборачивается недостающей вам функцией — напишите нам; дорожную карту в основном пишут те, кто нам пишет.
Куда мы движемся
Ближайшая работа — про гибкость хранения, более удобный повтор и региональную маршрутизацию, чтобы подписчик подключался к близкой к нему точке присутствия. Мы движемся к SOC 2 и скажем об этом прямо, когда получим сертификацию, а не заранее. Следить за этим можно в журнале изменений и в блоге.