Переезжаем на новую CDN-инфру для российских пользователей
60% наших бета-команд — из России. Готовясь к публичному запуску, обновляем инфраструктуру с фокусом на latency для пользователей в РФ и СНГ.
Зачем переезжаем
До сих пор API хостился целиком за границей. Latency для российских пользователей плавала от 80 до 250 мс в зависимости от провайдера и времени суток. Это нормально для статичных запросов — но для real-time sync, где каждые 100 мс отображаются на UX, недостаточно.
Подняли в Москве и Питере edge-серверы через российский CDN-провайдер (VK Cloud CDN). Юзеры из РФ теперь будут попадать на ближайший edge с RTT 5-15 мс. Origin при этом остаётся за границей — но критичные пути теперь cached/proxied близко к юзеру.
Что технически меняется
1. API доступ — теперь через CDN
API endpoint обновляется. Старый URL продолжит работать ещё ~2 месяца с автоматическим redirect'ом на новый. Через клиент мобильного приложения переход прозрачный — встроенный SDK сам подхватит конфиг.
| Что | Раньше (EU origin) | Теперь (RU edge) |
|---|---|---|
| API base | api-eu.focuswork.pro/v1 | api.focuswork.pro/v1 |
| Push events | push.focuswork.pro | интегрировано в API |
| Sync stream | sync.focuswork.pro | api.focuswork.pro/v1/sync/* |
2. Sync push throughput — выросло втрое
На старой инфре одно offline-устройство при возвращении в онлайн могло иметь буфер до 500 мутаций. Дозалив этого буфера через POST /sync/push занимал до 8 секунд. На новой инфре с CDN — ~2.5 секунды для того же объёма. Bottleneck был не в API, а в network round-trip из РФ → EU.
3. Push-уведомления — стабильнее на мобиле
Push-нотификации от backend'а до APNs/FCM теперь идут через RU-edge → отдельный туннель в EU → провайдеры push'а. Latency меньше, но главное — стабильнее на мобильных операторах с переменчивым качеством соединения до зарубежных IP.
API endpoints через CDN — что важно для разработчиков
Поскольку CDN — это HTTP-прокси перед нашим origin, все стандартные HTTP-методы работают как раньше. Это особенно касается POST, который используется в большинстве наших action-endpoints:
POST /api/v1/auth/login # вход
POST /api/v1/auth/refresh # обновление токена
POST /api/v1/tasks # создание задач
POST /api/v1/sync/push # отправка локальных изменений
POST /api/v1/attachments # загрузка файлов
POST /api/v1/webhooks # настройка webhooks
POST /api/v1/teams/invitations # приглашения в команду
Если вы используете официальный FocusWork SDK (iOS, Android, JS, Python) — он сам подхватит новый base URL после обновления. Если делаете прямые запросы к API — обновите base URL в своём коде.
Безопасность и compliance
Часто спрашивают: "а где теперь хранятся мои данные?" Ничего не меняется:
- Все user-data по-прежнему на наших origin-серверах
- CDN не имеет доступа к содержимому (CDN видит зашифрованный TLS-поток)
- Для E2EE workspace'ов всё шифруется на стороне клиента, как и было
- Логи CDN не содержат личных данных — только метрики (request_id, ms latency, status code)
Roadmap дальше
После стабилизации текущего переезда — на очереди:
- Edge-серверы в Казахстане и Беларуси для local команд
- HTTP/3 (QUIC) для мобильных клиентов
- Региональные read-replicas для read-heavy запросов (GET /tasks, GET /sync/pull)
Вопросы / фидбэк — пишите на dev@focuswork.pro. Если вы интегрируетесь с нашим API и нужна помощь с миграцией — поможем индивидуально.
— Команда инфраструктуры FocusWork