Рекомендации по улучшению

  1. Оптимизация кеша для селебрити:
    1. Что изменить: Добавить отдельный кеш (Redis Cluster) с TTL=1 час для последних 100 постов селебрити.
    2. Почему: Снижение нагрузки при мерже ленты
    3. Альтернативы:
      1. Использовать Bloom Filter для быстрой проверки наличия селебрити в подписках.
      2. Pre-warming кеша при публикации постов селебрити.
  2. Устранение Single Point of Failure:
    1. Что изменить: Заменить мастер-ноду SQL DB на распределенную БД (CockroachDB, YDB).
    2. Почему: Риск потери данных при отказе мастера
    3. Альтернативы:
      1. Репликация PostgreSQL с автоматическим failover (Patroni).
        1. Пока что не углубляйся в Patroni. В одной из будущих систем будут примеры.
        2. https://github.com/patroni/patroni
      2. Шардирование по диапазонам user_id.

Риски:

  1. Race Condition при обновлении кеша: CAS-операции в Redis могут не хватить при высокой нагрузке.
  2. Задержки при мерже ленты: CPU-bound операция для пользователей с 10k подписок.