Ми працюємо з протоколом AT Protocol (Bluesky). Нам необхідно розробити або адаптувати референсну реалізацію AppView — сервісу, який здатний зберігати та обслуговувати приблизно 500 ТБ даних, отриманих із “firehose” (потоку трансляції подій мережі).Попередня спроба реалізувати це рішення на базі PostgreSQL виявилася невдалою — база даних не витримала навантаження. Нам потрібен експерт, який візьме на себе повну відповідальність за вибір технологічного стеку для рівня даних (data layer) та розробку архітектури навколо нього.
Функціональні вимоги до AppView:
- Інжестія потоку даних (Firehose ingestion): Безперервний інтенсивний потік записів (commits: пости, лайки, підписки, репости, блокування) з релеїв. Висока постійна пропускна здатність на запис без природного зворотного тиску (backpressure).
- Соціальний граф (Social graph): Відстеження підписок, блокувань та ігнорувань (mutes). Критично низька затримка на читання (latency-critical), інтенсивне обходження графа (traversal-heavy), високе розгалуження (fanout) для побудови стрічки новин.
- Обслуговування стрічки новин (Timeline / feed serving): Низька затримка читання за умов високої конкурентності. Вибір між стратегіями формування стрічки при читанні (fanout-on-read) чи при записі (fanout-on-write) залишається відкритим.
- Агрегації та лічильники: Підрахунок лайків, відповідей та репостів. Дані з високою кардинальністю (high-cardinality), частими змінами (high-churn) та високим навантаженням на читання (read-hot).
- Пошук та рекомендації: Повнотекстовий пошук по постах та визначення поточних трендів (trend detection).
- Історичне/аналітичне сховище: Основний обсяг даних (близько 500 ТБ). “Холодні” дані, які скануються рідко та мають зберігатися окремо від оперативних (“гарячих”) даних.
- Модерація та маркування: Швидкий пошук міток під час читання, а також можливість ретроактивного видалення контенту по всьому корпусу даних.