Планы развития

Следующий этап — сделать файловый контракт устойчивее и предсказуемее.

Базовая платформа уже существует: File API, версии, среды, прямая загрузка, вебхуки, SDK, Workspace и обработка форматов. Дальше приоритет у технической глубины, совместимости и поведения под реальной нагрузкой.

Главный принцип

Клиентский контракт должен переживать внутренние изменения.

File ID, версии, права доступа и правила выдачи остаются стабильной границей для приложения. Внутреннее хранение, каталог и обработчики можно развивать без переноса бизнес-модели клиента.

File ID

Стабильная ссылка на логический файл

Замена содержимого, новые форматы и внутренние изменения не должны заставлять клиента менять идентификатор.

базовый контракт
Версии

Предсказуемый жизненный цикл

Создание, замена, история и удаление должны иметь одинаковую семантику во всех клиентах и SDK.

совместимость
Ошибки

Явные и повторяемые состояния

Клиент должен понимать, что можно повторить, что заблокировано политикой и что требует нового действия.

API
Загрузка и выдача

Основной путь должен оставаться быстрым и корректным.

Приоритет — загрузка, замена, приватная и публичная выдача, Range/HEAD/ETag, идемпотентность и поведение при сетевых сбоях.

Upload

Параллельные загрузки и давление на диск

Зафиксировать безопасный рабочий диапазон одновременных загрузок и понятное поведение при нехватке ресурсов.

Delivery

Предсказуемая выдача

Проверять latency, Range-запросы, ETag, закрытые ссылки и публичную выдачу на реальных размерах файлов.

Retry

Безопасные повторы

Идемпотентность и повтор после сетевого сбоя должны быть одинаково понятны в HTTP API и SDK.

Форматы

Новые форматы добавляются поверх общего File API.

Распознавание по содержимому, ограниченные по ресурсам анализаторы и fail-closed поведение остаются общей основой. Поддержка расширяется там, где она нужна реальным клиентам.

Изображения

Мобильные источники и цвет

Расширять совместимость HEIC/HEIF и других источников без изменения WebP-контракта выдачи.

Документы и медиа

Технический анализ без скрытого исполнения

Добавлять свойства и форматы только там, где их можно доказать безопасно и воспроизводимо.

Обычный файл

Всегда рабочий fallback

Неизвестный формат должен сохраняться как обычный файл с теми же версиями, доступом и выдачей.

Интеграция

От первого ключа до production-пути без лишней внутренней кухни.

Центр интеграции, документация и SDK должны описывать один и тот же контракт и одинаково вести разработчика через серверную загрузку, прямую загрузку и вебхуки.

SDK

Паритет с File API

Node.js и PHP получают новые возможности только вместе с понятным HTTP-контрактом и примерами.

единый путь
Примеры

Минимальный рабочий сценарий сначала

Первый файл не должен требовать знания внутренних сущностей Pulse Media.

короткий старт
Вебхуки

Стабильная доставка событий

Подпись, повторные попытки и типы событий должны оставаться совместимыми при развитии платформы.

события
Производительность

Сначала измерить предел текущей архитектуры.

Local Storage и SQLite остаются рабочей конфигурацией, пока измерения не показывают обратное. Нужны понятные пределы по загрузкам, File API, выдаче, обработке, scanner и росту каталога.

Загрузка
конкурентность · latency
API
RPS · ошибки
Обработка
CPU · память · очередь
Хранилище
диск · каталог · рост
Масштабирование

Архитектура усложняется только по измеримой необходимости.

Несколько экземпляров, серверная база данных, объектное хранилище или распределённая выдача имеют смысл, когда текущий предел становится реальной проблемой. File API при этом должен остаться тем же.

Процессы

Несколько экземпляров

Убирать предположения об одном writer только при требованиях по пропускной способности или доступности.

Каталог

Другая база данных

Переезд от SQLite должен решать измеримую проблему, а не менять API ради архитектурной моды.

Storage

Объектное хранилище

Система хранения может измениться без смены File ID, версий и правил выдачи.

1.0

Техническая граница 1.0 — стабильный контракт и предсказуемая эксплуатация.

File API и SDK совместимы, ошибки понятны, поддерживаемые форматы имеют честные границы, рабочий диапазон архитектуры измерен, а независимое приложение может пройти путь от ключа до production-нагрузки без специальных обходов.