Bluesky - это отличный пример эффективных маленьких команд разработчиков. Представьте, что аналог Twitter/X делает команда из трех разработчиков. И только спустя год, прирост в несколько миллионов пользователей команда увеличивается до 12 человек и остается компактной по сей день.
Сам по себе проект Bluesky любопытен с технической точки зрения. Что такого особенного в Bluesky? AT protocol (Authenticated Transfer Protocol) - это открытый стандарт для децентрализованных социальных сетей.
На бурный старт проекта повлиял новостной фон о том, что Илон Маск собирается купить Twitter. Пользователи заинтересовались альтернативами. Сам Bluesky вышел из недр компании Twitter как экспериментальный проект по разработке децентрализованного протокола для управления аккаунтами пользователей. Экс руководство Twitter видело Bluesky ядром соц сети, а Twitter - его клиентом.
Напомню, что Илон Маск на тот момент уже анонсировал изменения в модерации контента в соц. сети. Также будущий CEO известен своими политическими предпочтениями, что тоже оттолкнуло часть аудитории. Наконец, непредсказуемые кадровые решения - увольнение ключевых сотрудников, радикальное сокращение штата. Эти особенности Илона Маска оттолкнули часть лояльных пользователей в пользу альтернатив. За несколько дней до продажи Twitter Илону Маску Bluesky открыли waitlist для ранних пользователей.
В марте 2023 Bluesky стал приглашать больше пользователей и за 6 месяцев нарастил пользовательскую базу до 1 000 000 пользователей. Сейчас по моему мнению bsky.app стал прибежищем микроблоггеров, критикующих Илон Маска.
PostgreSQL в качестве СУБД, т.к. неясна структура данных на этапе прототипирования. Запущена на старте была в AWS с репликами, на которые происходит автоматическое переключение в случае недоступности главного инстанса СУБД (Postgres multi-availability zone instance). AWS auto-scaling groups в качестве рантайма - это набор EC2 (Elastic Compute Cloud) с Docker. И, наконец, load balancer. Всё настраивается в Pulumi - это IaC решение наподобии Terraform от Hashicorp.
Интересная особенность AT protocol - делегирование управлением выдачи контента. На своем PDS (Personal Data Server) вы можете реализовать свой алгоритм ранжирования и выдачи контента. Из чего состоит распределенный кластер?
PostgreSQL использовался как в Appview - агрегатор, к которому делает запросы клиент для получения контента, так и с PDS. Спустя 3 месяца работы beta версии команда всё чаще стала испытывать проблемы с PostgreSQL:
На PDS также сложно поддерживать PostgreSQL, поэтому перешли на SQLite. Для каждого пользователя своя база данных, а значит свой файл.