Personal project

ReelServer

Systems Engineer2026Private project
A private Reel-processing service that turns fragile downloads into queued, observable, failure-aware jobs.

Overview

A download script looks finished when it works once. The real system appears when sessions expire, accounts are challenged, requests are throttled, or a batch fails halfway through. ReelServer is a private service built around those failure modes rather than the happy path.

The unit of work is a job, not a request. A URL, user archive, or batch enters Celery through a command-line client and returns a task identifier immediately. Redis coordinates workers and result state, so processing can continue independently of the terminal that submitted it. Status checks and Flower expose what is queued, active, complete, or broken without requiring a worker log to be read line by line.

Failure is modeled explicitly. Persistent sessions avoid unnecessary logins. Randomized pacing and configurable limits reduce avoidable throttling. Login failures, rate limits, and platform challenges move through retry policies with increasing delays instead of tight loops. Proxy support makes network identity a configuration choice, while structured job records preserve enough state to understand what happened after a worker exits.

The boundaries make recovery easier. Domain entities describe reels, accounts, and download jobs. Application use cases decide how a single URL or a user’s recent posts should be processed. Infrastructure adapters handle Instagram, SQLAlchemy, Turso, Redis, and the filesystem. The CLI and Celery tasks remain presentation layers. That separation lets the downloader, persistence layer, or delivery client change without rewriting the rules around a job.

The stack starts as one local system. Docker Compose brings up Redis, multiple workers, shared download and session volumes, and the Flower dashboard. A Makefile covers setup, submission, logs, health checks, and teardown. The same workload can run directly for a one-off download or through distributed workers for a batch.

ReelServer is personal infrastructure: intentionally private, operated for a narrow workflow, and designed to keep running without constant attention. Its value is not that it downloads a Reel. It turns an unreliable interaction with an external platform into work that can be queued, observed, retried, and explained.

Key Achievements

  • Distributed processing — Uses Celery workers and Redis to queue, retry, and monitor parallel download jobs
  • Failure-aware automation — Handles session expiry, challenges, rate limits, proxy configuration, and exponential backoff
  • Clean boundaries — Separates domain entities, application use cases, infrastructure adapters, and presentation clients

Technologies

PythonCeleryRedisDockerSQLAlchemyTursoinstagrapi

Outcome

ReelServer turned a fragile one-off downloader into a durable background system with explicit operational limits and observable job state.