SaaS на Django: тенанты, тарифы и фоновые отчёты
SaaS-отчётность: тенанты, тарифы и тяжёлые Excel/PDF в Celery без повторных job.
Celery, Django, PostgreSQL, SaaS
Я делал SaaS-сервис отчётности на Django: несколько компаний на одном инстансе, тарифы, кабинет и генерация тяжёлых Excel/PDF в фоне.
Я реализовал мультитенантность по tenant_id и middleware: запросы, ORM и файлы жёстко режутся по организации. Я написал биллинг-контур: план, лимиты (пользователи, отчёты в месяц), блокировка фич при просрочке, вебхук оплаты.
Я вынес сборку отчётов в Celery: job, прогресс, presigned-ссылка на S3, повтор при сбое воркера. Я запретил повторный запуск той же выгрузки (идемпотентность по hash параметров), чтобы F5 не плодил очередь.
Я собрал админку супервизора: имперсонация тенанта с логом, смена плана, просмотр очереди. Стек: Django, Celery, Redis, PostgreSQL, S3, Docker. NDA: название SaaS не публикуется.