Tech Stack
KafkaCassandraClickHousePythonScyllaDBRedisSQL
Job Description, Responsibilities & Requirements
Description language:
Архітектор бази даних (Консультант)
Про проект
Ми працюємо на AT Protocol (Bluesky). Нам потрібен AppView - або форк/адаптація референсної реалізації, або спеціально створена - здатна містити і обслуговувати приблизно 500 ТБ даних, отриманих з firehose. Ми намагалися це зробити на PostgreSQL. Це не впорався. Нам потрібна людина, яка візьме на себе відповідальність за рішення стосовно даного рівня і архітектуру навколо нього.
Що насправді має робити AppView:
- Поглинання firehose - безперервний потік записів (пости, лайки, підписки, репости, блоки) з релей. Висока продуктивність запису без природнього зворотного тиску.
- Соціальний граф - підписки/блоки/відключення звуку. Читається часто, критична затримка, інтенсивне переміщення. Розгалуження для створення часової шкали.
- Подання часової шкали/стрічки - низькочасові читання при високій конкурентності. Розгалуження при читанні проти розгалуження при записі є відкритим питанням.
- Агрегація та лічильники - лічильники лайків, відповідей, репостів. Висока кількість варіантів, висока швидкість зміни, часто читається.
- Пошук і виявлення - повнотекстовий пошук по постах, плюс виявлення трендів.
- Історичне/аналітичне сховище - основна маса 500 ТБ. Рідко використовується, має бути на іншому рівні, ніж гарячі дані.
- Модерування/маркування - пошук міток на шляху читання, плюс зворотне видалення по всьому корпусу.
Обов'язки
- Діагностувати збій PostgreSQL. Перш ніж запропонувати що-небудь, визначте, що саме зламалося: ампліфікація запису, роздування індексу, тиск вакууму, насичення з'єднань, вартість запиту розгалуження, або розташування зберігання. Пропозиція, яка не пояснює чому PostgreSQL зламався, не є пропозицією.
- Визначити топологію зберігання. Майже напевно поліглот. Створіть явне відображення кожного робочого навантаження вище до двигуна зберігання з обґрунтуванням. Технології-кандидати для оцінки (не обов'язково призначені): ScyllaDB/Cassandra, ClickHouse, Redis/Valkey, FoundationDB, спеціально створені сервіси типу TigerBeetle, сервіси на базі RocksDB, об'єктне зберігання + Iceberg/Delta для холодного рівня, OpenSearch/Meilisearch для пошуку, і специфічний для графів сервіс, якщо це виправдано.
- Розробити розділення гарячого/холодного. 500 ТБ не може бути рівномірно гарячим. Визначте, що залишається на NVMe, що переміщується на об'ємний диск, що переміщується на об'єктне зберігання, і механізм, який це здійснює.
- Розробити поглинання і дозапис. Споживання firehose, гарантії порядку, повторне відтворення/дозапис після збою, і ідемпотентність. Kafka або еквівалент як буфер.
- Розробити межу розбиття. Багатокористувацька модель через федеративні мережі. Визначте ключ розбиття і його наслідки.
- Подати прототип з оцінкою ефективності. Дві кандидатські архітектури, реальні дані firehose, реальні форми запитів, опубліковані числа.
- Подати модель витрат. 3-річна TCO, включаючи обладнання, хостинг і персонал для його експлуатації.
Вимоги
- Досвід роботи з розподіленими базами даних у виробництві обсягом 100 ТБ+, де ви особисто володіли схемою і топологією.
- Доведений досвід роботи з пишучими, розгалуженими соціальними навантаженнями - часові шкали, стрічки, соціальні графи, або обмін повідомленнями в масштабі.
- Досвід роботи з принаймні трьома з: ScyllaDB, Cassandra, ClickHouse, FoundationDB, Redis/Valkey, RocksDB, Kafka, Iceberg/Delta.
- Здатність пояснити режими збою PostgreSQL у цьому класі навантаження в конкретних термінах.
- Знання SQL і Python. Зручність у читанні Go, Rust і TypeScript - екосистема AT Protocol написана на них.
Буде плюсом
- Безпосередній досвід роботи з AT Protocol - запуск PDS, релей, AppView, або генератор стрічки.
- Досвід роботи з аналогічним федеративним або децентралізованим протоколом (ActivityPub/Mastodon в масштабі, Matrix).
- Досвід роботи зі становою інфраструктурою даних поза гіпермасштабними компаніями.
Ми пропонуємо
- Конкурентоспроможна зарплата і пакет соціальних виплат.
- Гнучний робочий час для підтримання балансу між роботою і особистим життям.
- Персональний ноутбук з усім необхідним програмним забезпеченням.
- Послуги підтримки: корпоративний бухгалтер і юрист.
- Прозоре і безбюрократичне управління.
Місця
- Київ, Україна
- Віддалено
- Варшава, Польща
Тип роботи
- Повний робочий день
Рівень англійської
- Середній+