Описание проекта
Конкретно сервис должен покрывать три больших семейства. Офисные и текстовые документы должны конвертироваться между собой и в обе стороны с PDF. Изображения должны переводиться между распространёнными растровыми и векторными форматами, включая постраничные. Аудио и видео должны конвертироваться между обычными контейнерами и кодеками, включая извлечение звуковой дорожки из видео. Это сознательно не CDN для картинок, который лишь ресайзит фото на лету, и не узкий транскодер только для видео; смысл именно в широкой конвертации многие-ко-многим между документами, изображениями и медиа за одним единым интерфейсом.
Работа должна быть асинхронной, потому что одни задачи занимают секунды, а другие минуты. Ожидаем REST API для постановки задачи и получения её идентификатора, очередь и пул воркеров, обрабатывающих задачи без блокировки вызывающего, возможность опрашивать статус и вебхук-колбэк при завершении или ошибке с подписанным телом запроса. Заложите разумные лимиты, понятные сообщения об ошибках для неподдерживаемых или битых входных данных и простое горизонтальное масштабирование воркеров. Мы предоставим тестовые файлы для каждого семейства форматов и ждём короткую инструкцию по эксплуатации.
— REST-эндпоинты для постановки задачи, проверки статуса и скачивания результата
— Асинхронная очередь с пулом воркеров и повтором при временных сбоях
— Подписанные вебхук-колбэки при успехе и при ошибке
— Поддержка семейств форматов: документы, изображения, аудио и видео
— Лимиты на размер файла и частоту запросов, понятные ошибки для плохого ввода
— Развёртывание через Docker и короткая инструкция по эксплуатации